Connessione, Abbonamento e Battito del cuore

Connettiti a 6MM WebSocket stream, iscriviti agli argomenti, mantieni vive le connessioni ed elabora le buste dei messaggi in sicurezza.
Visualizza come Markdown

Usa WebSocket stream per i dati di mercato e gli aggiornamenti privati dello stato degli utenti che devono rimanere aggiornati senza consultazione.

Connessione URL

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

I flussi privati richiedono un contesto di autenticazione come un listenKey o un token di accesso come descritto nella documentazione del canale privato.

Abbonati

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

Riconoscimento di abbonamento riuscito:

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

Disiscriverti

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

Ping dell’applicazione

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

Inviluppo del messaggio

I push pubblici utilizzano un limite coerente:

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

Raccomandazioni operative

  • Generare un id lato client unico per ogni iscrizione, disiscrizione e richiesta di ping.
  • Considerare la riconnessione come una nuova sessione e riiscriverti agli argomenti richiesti.
  • Validare che il topic restituito corrisponda al canale che il tuo servizio si aspetta.
  • Mantenere l’elaborazione dei messaggi idempotente quando sono coinvolti eventi di ordini privati o account.
  • Modifica dello stato della connessione nel registro, confermi di abbonamento e disconnessioni anomale.

Flusso di lavoro di riconnessione

  1. Chiudi o scarta la presa precedente e crea una nuova connessione.
  2. Riautenticare i flussi privati con un listenKey valido o un token di accesso.
  3. Sottoscriverti nuovamente a ogni argomento richiesto e attendere i riconoscimenti di successo.
  4. Sostituire lo stato locale del libretto ordini con una nuova istantanea prima di applicare aggiornamenti incrementali.
  5. Riconciliare ordini aperti, posizioni e saldi tramite REST se eventi privati potrebbero essere stati trascurati.

Usa un backoff esponenziale limitato con jitter per i tentativi di riconnessione. Un client che si riconnette continuamente dovrebbe avvisare gli operatori invece di riprovare indefinitamente senza visibilità.

Battito cardiaco e connessioni stantie

  • Tracciare il messaggio in entrata più recente e il riconoscimento ping riuscito.
  • Utilizzare l’intervallo cardiaco e la soglia di inattività approvati per l’ambiente di produzione.
  • Considerare una connessione come obsoleta quando la soglia configurata è superata, anche se il socket TCP appare ancora aperto.
  • Non riutilizzare abbonamenti da un vecchio socket; riiscriversi esplicitamente dopo ogni riconnessione.