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

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

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

POST /v1/private/user/listen-key

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

{
"code": 0,
"message": "success",
"data": {
"listenKey": "f57cb61ef604ce76be09e753a5dbdd8c",
"expireAt": 1777539918867
},
"requestId": "req-listen-key"
}

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

Продлевать

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

Закрыть

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

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

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

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

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

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

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

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

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

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

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

{
"topic": "user.5794",
"ts": 1771047000000,
"data": {
"eventType": "ORDER_TRADE_UPDATE"
}
}

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

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

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

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

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