Приватний користувацький канал

View as 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.
  • Дотримуйтесь гайд по з’єднанню та серцебиттю для повторної спроби та обробки застійного з’єднання.