Połączenie, subskrypcja i bicie serca

Łącz się z 6MM WebSocket strumieniami, subskrybuj tematy, utrzymuj kontakty i bezpiecznie przetwarzaj koperty wiadomości.

Zobacz jako Markdown

Korzystaj WebSocket strumieni do danych rynkowych oraz prywatnych aktualizacji stanów użytkowników, które muszą być aktualne bez konieczności ankietowania.

Połączenie URL

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

Prywatne strumienie wymagają kontekstu uwierzytelniania, takiego jak listenKey lub token dostępu, opisany w dokumentacji kanału prywatnego.

Subskrybuj

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

Pomyślne potwierdzenie subskrypcji:

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

Zrezygnuj z subskrypcji

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

Ping aplikacji

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

Koperta z wiadomością

Publiczne inicjatywy stosują spójną granicę:

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

Zalecenia operacyjne

  • Generowanie unikalnego id po stronie klienta dla każdego zgłoszenia, wypisania i pinga.
  • Traktuj ponowne połączenie jako nową sesję i ponownie subskrybuj wymagane tematy.
  • Sprawdź, czy zwrócony topic odpowiada kanałowi, którego oczekuje usługa.
  • Utrzymanie idempotencji przetwarzania wiadomości, gdy w grę wchodzą zdarzenia prywatnego zamówienia lub konta.
  • Rejestruj zmiany stanu połączenia, potwierdzenia subskrypcji oraz nieprawidłowe rozłączenia.

Workflow Reconnect

  1. Zamknąć lub odrzucić poprzednie gniazdo i utworzyć nowe połączenie.
  2. Ponowne uwierzytelnienie prywatnych strumieni za pomocą ważnego listenKey lub tokena dostępu.
  3. Ponownie subskrybuj każdy wymagany temat i czekaj na udane podziękowania.
  4. Zastąpienie lokalnego stanu księgi zamówień nowym snapshotem przed wprowadzeniem aktualizacji przyrostowych.
  5. Uzgadnianie otwartych zamówień, pozycji i bilansów poprzez REST jeśli mogły przegapić prywatne wydarzenia.

Używaj ograniczonego wykładniczego cofania z jitterem do prób ponownego połączenia. Ciągłe ponowne łączenie klienta powinno ostrzegać operatorów, zamiast próbować w nieskończoność bez widoczności.

Bicie serca i przestarzałe połączenia

  • Śledzenie najnowszej wiadomości przychodzącej i pomyślnego potwierdzenia pingu.
  • Używanie interwału serca i progu bezczynności zatwierdzonych dla środowiska produkcyjnego.
  • Traktuj połączenie jako przestarzałe, gdy przekroczony jest skonfigurowany próg, nawet jeśli gniazdo TCP nadal wydaje się otwarte.
  • Nie używaj ponownie subskrypcji ze starego gniazda; Ponownie subskrybuj wyraźnie po każdym ponownym połączeniu.