• API и библиотеки
    API и библиотеки
  • Подключение кошелька WX Network
    Подключение кошелька WX Network
  • CCXT
    CCXT
  • Комиссии
    Комиссии
  • Матчер
    • Протокол WX Network
      Протокол WX Network
    • Комиссия матчера
      Комиссия матчера
    • Установка матчера на Ubuntu из Deb-пакета
      Установка матчера на Ubuntu из Deb-пакета
    • Настройки матчера
      Настройки матчера
    • API Матчера
      • Правила валидации ордера
        Правила валидации ордера
      • Правила валидации ExchangeTransaction
        Правила валидации ExchangeTransaction
      API Матчера
    • WebSocket API Матчера
      • Ошибки и отладка
        Ошибки и отладка
      • Common Streams
        Common Streams
      WebSocket API Матчера
    Матчер
  • API шлюза
    • Токен доступа
      • Получить токен в интерфейсе
        Получить токен в интерфейсе
      • POST /v1/oauth2/token
        POST /v1/oauth2/token
      Токен доступа
    • Внесение средств
      • [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 шлюза
  • Получить список сделок (Get Trades)
    Получить список сделок (Get Trades)
  • Годовая процентная ставка стейкинга (API)
    Годовая процентная ставка стейкинга (API)
  • API платежей
    API платежей
  • API авторизации
    API авторизации
  • Протокол WX-токена
    Протокол WX-токена
  • Глоссарий
    Глоссарий
      • English
      • Русский
      On this page
        • Handshake Errors
        • Operation Errors
        • Другие возможные общие ошибки
        • Отладка сетевого соединения
        • Обнаружение сетевых проблем на стороне клиента
          • Частые вопросы (FAQ)

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

          Важно: Документация Matcher WebSocket API описывает наиболее распространенные ошибки, которые могут возникнуть во время стримов. Однако предоставленная информация может не охватывать все возможные случаи. Вы можете встретить и другие стандартные ошибки. Если вы столкнулись с такими ошибками, свяжитесь со службой поддержки или командой разработчиков. Также обратите внимание, что Сервер очень старается, но не может гарантировать доставку всех ошибок Клиенту.

          См. список всех возможных ошибок (opens new window).

          # Handshake Errors

          Ошибки могут возникать в момент подключения (handshake). Причина описывается в HTTP-заголовках ответа:

          X-Error-Code - error code; X-Error-Message - error message;

          Коды ошибок и сообщения аналогичны соответствующим полям JSON-объектов, описывающих ошибки, возвращаемые в HTTP Matcher API: https://github.com/wavesplatform/matcher/wiki/List-of-all-errors-(future-release)

          # Operation Errors

          Ошибки могут возникать во время работы. Такие ошибки содержат стандартизированный (opens new window) код и сообщение и приходят от сервера как системные сообщения. После таких ошибок соединение закрывается.

          Пример ошибки:

          {
            "T": "e",
            "_": 1585148910776,
            "c": 8388624,
            "m": "The order book for Emn8cyGDFgnLCKLTXqVWhKJARhtR2muBUuZaSmqNzDfn-Co11Tbj83TeZCnuXrZQwv6Bs4XG2sm1vGQiQ4FLDjJWs is stopped, please contact with the administrator"
          }
          

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

          e это тип сообщения "error".

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

          8388624 это код ошибки.

          m поле содержит сообщение с описанием ошибки.

          # Другие возможные общие ошибки

          Общие ошибки могут возникать во время любых стримов.

          MatcherIsStopping - сервер в процессе остановки. Обычно происходит при обновлении. Рекомендуется подключиться заново;

          PongTimeout - клиент не ответил на Ping. Может произойти из-за сетевых неполадок на стороне клиента. Рекомендуется исправить сетевые проблемы и подключиться заново;

          UnexpectedError - системная ошибка. Обратитесь в техподдержку;

          # Отладка сетевого соединения

          В некоторых ситуациях может потребоваться выполнить отладку соединения и со стороны клиента, и со стороны сервера. Вам потребуется атрибут, который отфильтрует записи и позволит соединить журналы обоих сторон. При открытии соединения, Matcher отправляет клиенту специальное сообщение, содержащее этот атрибут в поле i.

          В случае возникновении проблем, необходимо отправить техподдержке или разработчикам Matcher значение данного атрибута, а так же желательно запросы по WebSocket со стороны клиента с временными метками. Это может сильно упростить диагностику проблемы.

          Пример:

          {
            "T": "i",
            "_": 1585148910776,
            "i": "736fe9b1-59ad-4164-a942-c07a081678d5"
          }
          

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

          i это тип сообщения - initial/information.

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

          736fe9b1-59ad-4164-a942-c07a081678d5 это id подключения.

          # Обнаружение сетевых проблем на стороне клиента

          TCP/IP, на котором построен WebSocket, старается гарантировать доставку сообщений, но 100% гарантии не существует. Для решения этой проблемы Matcher отправляет update id вместе с каждым доменным сообщением.

          Поле update id:

          • Является инкрементальным. Т.е. следующее значение больше предыдущего на единицу;

          • Начинает отсчет с 0, который приходит вместе с snapshot доменной сущности;

          • Последнее значение - 9007199254740991. После него счетчик сбрасывается в 1;

          • Кодируется буквой "U";

          • Имеет собственное значение в каждом соединении;

          Пример:

          {
            "U": 1025 // update id
          }
          

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

          1025 это update id

          Клиент должен следить за update id, закрывать соединение и открывать его снова, если не соблюдается одно из условий:

          • Первое доменное имеет update id = 0

          • Каждое следующее сообщение имеет значение update id = previous(update id) + 1

          • При достижении последнего значения, следующее должно быть равно 1

          Примечание: Игнорирование данных рекомендаций может привести к нарушению консистентности сущности.

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

          Q: Почему 9007199254740991?

          A: Это значение константы Number.MAX_SAFE_INTEGER в браузерах. Заметьте, что на данный момент из-за ограничения длительности соединения в 24 часа, последнее значение счетчика не может быть достигнуто.

          WebSocket API Матчера
          Common Streams
          WebSocket API Матчера
          Common Streams