• Руководство пользователя
    • Заметки о безопасности
      Заметки о безопасности
    • Online/Desktop приложения
      • Управление аккаунтом
        • Создать аккаунт
          Создать аккаунт
        • Войти в аккаунт
          Войти в аккаунт
        • Создать Резервную Копию Seed-фразы
          Создать Резервную Копию Seed-фразы
        • Восстановить аккаунт
          Восстановить аккаунт
        • Узнать свой адрес
          Узнать свой адрес
        • Создать персональный алиас
          Создать персональный алиас
        • Импорт из Keeper Wallet
          Импорт из Keeper Wallet
        • Использовать устройства Legder Nano
          Использовать устройства Legder Nano
        Управление аккаунтом
      • Управление токенами
        • Ввод и вывод токенов
          • Транзакции
            Транзакции
          Ввод и вывод токенов
        • Купить токены с помощью банковской карты
          • Как работать с платежной системой Advanced Cash
            Как работать с платежной системой Advanced Cash
          Купить токены с помощью банковской карты
        • Создать токен
          Создать токен
        • Массовая отправка
          Массовая отправка
        • Перевыпустить токен
          Перевыпустить токен
        • Поменять перевыпускаемый на не перевыпускаемый
          Поменять перевыпускаемый на не перевыпускаемый
        • Сжечь токен
          Сжечь токен
        • Спонсорская транзакция
          Спонсорская транзакция
        • Спонсорская комиссия
          Спонсорская комиссия
        • Услуга OTC
          Услуга OTC
        • Своп DeFo
          Своп DeFo
        • Своп WAVES/XTN
          Своп WAVES/XTN
        • Своп токенов
          Своп токенов
        Управление токенами
      • Инвестиционные инструменты
        • Передать в стейкинг
          • Как получить XTN (Quick Guide)
            Как получить XTN (Quick Guide)
          • Как получить USDT/USDC/BTC/ETH (Quick Guide)
            Как получить USDT/USDC/BTC/ETH (Quick Guide)
          Передать в стейкинг
        • Lambo инвестиции
          Lambo инвестиции
        • Алгоритмическая торговля
          Алгоритмическая торговля
        • Управление Neutrino
          Управление Neutrino
        • Neutrino пулы
          Neutrino пулы
        Инвестиционные инструменты
      • Пулы ликвидности
        • Как максимально увеличить пассивный доход от пулов ликвидности?
          Как максимально увеличить пассивный доход от пулов ликвидности?
        • Как внести/вывести токены в/из пул(а) ликвидности?
          Как внести/вывести токены в/из пул(а) ликвидности?
        • Как сдать в стейкинг/забрать из стейкинга LP-токены?
          Как сдать в стейкинг/забрать из стейкинга LP-токены?
        • Как забрать вознаграждение в WX-токене за стейкинг LP-токена?
          Как забрать вознаграждение в WX-токене за стейкинг LP-токена?
        • Как сдать WX-токен в стейкинг, чтобы увеличить доход за стейкинг LP-токена?
          Как сдать WX-токен в стейкинг, чтобы увеличить доход за стейкинг LP-токена?
        • Как забрать вознаграждения за WX стейкинг?
          Как забрать вознаграждения за WX стейкинг?
        • Протокол WX-токена
          Протокол WX-токена
        Пулы ликвидности
      • Голосование
        Голосование
      • Расширенные возможности
        • Script транзакции
          Script транзакции
        • JSON подтверждение
          JSON подтверждение
        Расширенные возможности
      • Торговля на бирже
        Торговля на бирже
      Online/Desktop приложения
    • Мобильные приложения
      • Приложение WX Network
        Приложение WX Network
      • Приложение Waves.Exchange
        • Управление аккаунтом
          • Создать аккаунт
            Создать аккаунт
          • Войти в аккаунт
            Войти в аккаунт
          • Восстановить аккаунт
            Восстановить аккаунт
          • Узнать свой адрес
            Узнать свой адрес
          • Создать персональный алиас
            Создать персональный алиас
          Управление аккаунтом
        • Управление токенами
          • Ввод и вывод токенов
            Ввод и вывод токенов
          • Купить токены с помощью банковской карты
            Купить токены с помощью банковской карты
          • Сжечь токен
            Сжечь токен
          Управление токенами
        • Торговля на бирже
          Торговля на бирже
        Приложение Waves.Exchange
      • Приложение WX Invest
        Приложение WX Invest
      Мобильные приложения
    • Работа с MetaMask в сети Waves
      Работа с MetaMask в сети Waves
    • Реферальная программа WX
      Реферальная программа WX
    Руководство пользователя
  • API и библиотека
    • CCXT
      CCXT
    • Комиссии
      Комиссии
    • API платежей
      API платежей
    • API авторизации
      API авторизации
    • API шлюза
      • Внесение средств
        • [Deprecated] GET /v1/deposit/addresses/{currency}
          [Deprecated] GET /v1/deposit/addresses/{currency}
        • GET /v1/deposit/addresses/{currency}/{platform}
          GET /v1/deposit/addresses/{currency}/{platform}
        • GET /v1/deposit/currencies
          GET /v1/deposit/currencies
        • [Deprecated] GET /v1/deposit/currencies/{currency}
          [Deprecated] GET /v1/deposit/currencies/{currency}
        • GET /v1/deposit/currencies/{currency}/{platform}
          GET /v1/deposit/currencies/{currency}/{platform}
        • Terms of Deposit
          Terms of Deposit
        Внесение средств
      • Вывод средств
        • [Deprecated] GET /v1/withdraw/addresses/{currency}/{address}
          [Deprecated] GET /v1/withdraw/addresses/{currency}/{address}
        • GET /v1/withdraw/addresses/{currency}/{address}/{platform}
          GET /v1/withdraw/addresses/{currency}/{address}/{platform}
        • GET /v1/withdraw/currencies
          GET /v1/withdraw/currencies
        • [Deprecated] GET /v1/withdraw/currencies/{currency}
          [Deprecated] GET /v1/withdraw/currencies/{currency}
        • GET /v1/withdraw/currencies/{currency}/{platform}
          GET /v1/withdraw/currencies/{currency}/{platform}
        • Условия вывода
          Условия вывода
        Вывод средств
      • История операций
        История операций
      • Список платформ
        Список платформ
      • Коды ошибок
        Коды ошибок
      API шлюза
    • Токен доступа
      • Получить токен в интерфейсе
        Получить токен в интерфейсе
      • POST /v1/oauth2/token
        POST /v1/oauth2/token
      Токен доступа
    • Получить список сделок (Get Trades)
      Получить список сделок (Get Trades)
    • Годовая процентная ставка стейкинга (API)
      Годовая процентная ставка стейкинга (API)
    • Матчер
      • Протокол WX Network
        Протокол WX Network
      • Комиссия матчера
        Комиссия матчера
      • Установка матчера на Ubuntu из Deb-пакета
        Установка матчера на Ubuntu из Deb-пакета
      • Настройки матчера
        Настройки матчера
      • API Матчера
        • Правила валидации ордера
          Правила валидации ордера
        • Правила валидации ExchangeTransaction
          Правила валидации ExchangeTransaction
        API Матчера
      • WebSocket API Матчера
        • Ошибки и отладка
          Ошибки и отладка
        • Common Streams
          Common Streams
        WebSocket API Матчера
      Матчер
    API и библиотека
  • Глоссарий
    Глоссарий
      • English
      • Русский
      On this page
        • Базовые URL
        • Терминология
        • Ping/Pong
          • Частые вопросы (FAQ)

          # Matcher WebSocket API

          Matcher поддерживает протокол связи WebSocket (opens new window) и предоставляет WebSocket API. Протокол делает возможным более тесное взаимодействие между браузером и веб-сайтом, способствуя распространению интерактивного содержимого и созданию приложений реального времени. Большинство браузеров, например Google Chrome, Microsoft Edge, Internet Explorer, Firefox, Safari и Opera поддерживают данный протокол.

          Сообщения, которые приходят от Matcher представлены в виде объектов JSON, которые могут содержать поля состоящие из букв или комбинаций букв, например "t", "Q". Данные поля предназначены для обработки Клиентом; JSON объекты могут содержать символы, например "%" или "_". Такие символы не рекомендуется использовать в Клиенте, так как они используются для внутренних нужд и могут измениться в любой момент. Тип сообщения содержится в поле "T".

          # Базовые URL

          MainNet: wss://matcher.waves.exchange/ws

          TestNet: wss://matcher-testnet.waves.exchange/ws

          # Терминология

          snapshot - текущее состояние, которое отправляется только один раз, сразу после подключения через WebSocket.

          updates - новое состояние, к которому пришел объект после каких-либо действий на Матчере. updates и snapshot имеют одинаковый формат полей, за исключением того, что updates содержит только обновленные поля. Клиент должен самостоятельно применять изменения из updates к объекту, чтобы получить актуальное состояние. Изменения должны применяться в порядке их получения.

          domain message - сообщение, относящееся к сущностям, моделирующих доменную область, таким как ордер букам, адресам, и т.д.

          system message - сообщение, которое относится к работе Matcher и требующее от Клиента специальных действий. Например, Ping требует ответа Pong. Оба этих сообщений - системные.

          # Ping/Pong

          Ping/pong это стрим системных сообщений, который позволяет понять работает ли подключение. Стрим также поддерживает соединение в работающем состоянии.

          Алгоритм работы:

          • Раз в N секунд Matcher отправляет Ping с неким payload через соединение WebSocket;

          • Клиент должен в ответ прислать Pong с таким же payload;

          • Если Pong с таким же payload не приходит на Matcher через M секунд - Matcher прерывает соединение;

          • Matcher всегда ожидает сообщение Pong, содержащее такой же payload как в Ping и игнорирует Pong с неправильным payload;

          Значение N и M задает Matcher.

          Ping и Pong имеют одинаковый формат. Формат может меняться, но тип сообщение не может. Когда Клиент получает Ping, он должен отправить на Matcher такое же сообщение.

          Ping/Pong реализован одинаково для всех стримов.

          Пример:

          {
            "T": "pp",
            "_": 1585148910776
          }
          

          В данном примере:

          pp это тип сообщения Pong/Pong.

          1585148910776 это Unix временная отметка обновления в миллисекундах. Данное поле предназначено для отладки.

          # Частые вопросы (FAQ)

          Q: Почему на используются Ping/Pong frames, которые описаны в RFC?

          A: К сожалению, в реализации WebSocket для браузеров нет доступа к Control frames (opens new window).

          Q: Почему Ping отправляет Matcher, а не Клиент?

          A: Мы следуем рекомендациям спецификации (opens new window)

          User agents must not use pings or unsolicited pongs to aid the server; it is assumed that servers will solicit pongs whenever appropriate for the server's needs.

          См. также:

          Ошибки и отладка

          Common Streams

          Правила валидации ExchangeTransaction
          Ошибки и отладка
          Правила валидации ExchangeTransaction
          Ошибки и отладка