Частный пользовательский канал

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

Сначала создайте listenKey :

1POST /v1/private/user/listen-key

Пример ответа:

1{
2 "code": 0,
3 "message": "success",
4 "data": {
5 "listenKey": "f57cb61ef604ce76be09e753a5dbdd8c",
6 "expireAt": 1777539918867
7 },
8 "requestId": "req-listen-key"
9}

listenKey по умолчанию действует 60 минут. Рекомендуется продлевать каждые 30 минут.

Продлевать

1PUT /v1/private/user/listen-key
2Content-Type: application/json
1{ "listenKey": "f57cb61ef604ce76be09e753a5dbdd8c" }

Закрыть

1DELETE /v1/private/user/listen-key
2Content-Type: application/json
1{ "listenKey": "f57cb61ef604ce76be09e753a5dbdd8c" }

Подключитесь к частному WebSocket

wss://ws.6mm.com/ws?listenKey=YOUR_LISTEN_KEY

Совместимый JWT способ подключения:

wss://ws.6mm.com/ws?token=YOUR_ACCESS_TOKEN

После успешной аутентификации сервер автоматически подписывается на подключение к приватному каналу текущего пользователя. Ручная подписка не требуется.

Успешное подтверждение аутентификации:

1{ "event": "auth", "success": true, "data": "1188041528" }

Частные частные мероприятия

СобытиеОписание
ORDER_TRADE_UPDATEИзменения статуса заказов, включая новый заказ, поправку, обмен и отмену
ACCOUNT_UPDATEБаланс счета и изменения позиций

Обёртка приватного push-сообщения:

1{
2 "topic": "user.5794",
3 "ts": 1771047000000,
4 "data": {
5 "eventType": "ORDER_TRADE_UPDATE"
6 }
7}

REST конечные точки запросов и WebSocket приватные потоки используют отдельные схемы. Клиенты должны парсировать каждую схему независимо и не предполагать, что имена полей идентичны.

Общие различия

ДоменREST полеWebSocket поле
Статус орденаstatusorderStatus
Замороженный балансfrozenMarginfrozenBalance
Режим marginmarginModemarginMode, возвращается как строка в позициях и потоках

Восстановление и примирение

  • Продлить listenKey до истечения срока действия и создать новый, если продление не удалось.
  • Восстановить соединение, повторную аутентификацию и воспринимать новый сокет как новую сессию события.
  • Дедупликация событий перед изменением баланса партнёров или записей заказов.
  • Если события были пропущены, запросить orders, positions и account state через REST.
  • Следуйте руководству по соединению и сердцебиению для повторного попытки и обработки застоявшихся соединений.