Подключение, подписка и сердцебиение

Подключайтесь к 6MM WebSocket потокам, подписывайтесь на темы, поддерживайте связи и безопасно обрабатывайте конверты сообщений.

Просмотр в формате Markdown

Используйте WebSocket потоки для рыночных данных и частных обновлений состояния пользователя, которые должны оставаться актуальными без опросов.

Связь URL

wss://ws.6mm.com/ws

Приватные потоки требуют контекста аутентификации, такого как listenKey или токен доступа, как описано в документации по частному каналу.

Подписаться

1{ "id": "1772007814666", "op": "subscribe", "args": ["market.depth.BTCUSDT"] }

Успешное подтверждение подписки:

1{
2 "id": "1772007814666",
3 "event": "subscribe",
4 "success": true,
5 "data": ["market.depth.BTCUSDT"]
6}

Отписаться

1{ "id": "1772007814667", "op": "unsubscribe", "args": ["market.depth.BTCUSDT"] }

Применение пинга

1{ "id": "1772007814668", "op": "ping", "args": [] }

Конверт для сообщений

Публичные продвижения используют единую границу:

1{
2 "topic": "market.depth.BTCUSDT",
3 "event": "data",
4 "ts": 1772007815000,
5 "data": {}
6}

Оперативные рекомендации

  • Создать уникальный клиентский id для каждого запроса подписки, отписки и пинга.
  • Воспринимайте повторное подключение как новую сессию и заново подписывайтесь на необходимые темы.
  • Проверьте, что возвращаемый topic совпадает с каналом, которого ожидает ваш сервис.
  • Сохранять обработку сообщений идемпотентной, если речь идёт о частных заказах или событиях аккаунта.
  • Изменения состояния подключения журналов, подтверждения подписки и аномальные разрывы соединения.

Рабочий процесс повторного подключения

  1. Закройте или отключите предыдущую розетку и создайте новое соединение.
  2. Повторная аутентификация частных потоков с помощью действительного listenKey или токена доступа.
  3. Подпишитесь на все необходимые темы и ждите успешных подтверждений.
  4. Замените локальное состояние книги заказов на новый снимок перед введением постепенных обновлений.
  5. Согласовать открытые ордеры, позиции и балансы через REST , если частные события могли быть пропущены.

Используйте ограниченный экспоненциальный откат с джиттером для попыток повторного подключения. Клиент, постоянно переподключающийся, должен предупреждать операторов, а не бесконечно пытаться без видимости.

Сердцебиение и застоявшиеся связи

  • Отслеживать самое свежее входящее сообщение и успешное подтверждение пинга.
  • Используйте интервал сердцебиения и порог ожидания, одобренные для производственной среды.
  • Считать соединение устаревшим, если настроенный порог превышен, даже если TCP разъём всё ещё открыт.
  • Не использовать повторно подписки из старого сокета; Обязательно подписывайтесь после каждого повторного подключения.