Ligação, Subscrição e Batimentos Cardíacos

Ligue-se a 6MM WebSocket streams, subscreva tópicos, mantenha as ligações vivas e processe envelopes de mensagens em segurança.

Ver como Markdown

Use WebSocket fluxos para dados de mercado e atualizações privadas do estado dos utilizadores que devem manter-se atualizadas sem necessidade de sondagens.

Ligação URL

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

Os fluxos privados requerem contexto de autenticação, como um listenKey ou token de acesso, conforme descrito na documentação do canal privado.

Subscreva

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

Reconhecimento de subscrição bem-sucedida:

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

Desassinar

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

Ping da aplicação

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

Envelope de mensagens

As campanhas públicas usam um envelope consistente:

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

Recomendações operacionais

  • Gerar uma id única do lado do cliente para cada pedido de subscrição, cancelamento e ping.
  • Tratar a reconexão como uma nova sessão e subscrever novamente os tópicos exigidos.
  • Validar se o topic devolvido corresponde ao canal que o seu serviço espera.
  • Manter o processamento de mensagens idempotente quando estão envolvidos eventos privados de ordem ou de conta.
  • Alterações ao estado da ligação no registo, confirmações de subscrição e desconexões anormais.

Fluxo de trabalho de reconexão

  1. Feche ou descarte o soquete anterior e crie uma nova ligação.
  2. Re-autenticar fluxos privados com um listenKey ou token de acesso válido.
  3. Volte a subscrever todos os tópicos exigidos e aguarde por reconhecimentos bem-sucedidos.
  4. Substituir o estado local do livro de ordens por um novo snapshot antes de aplicar atualizações incrementais.
  5. Reconciliar ordens abertas, posições e saldos através da REST caso eventos privados possam ter sido perdidos.

Usa backoff exponencial limitado com jitter para tentativas de religação. Um cliente que se reconecta continuamente deve alertar os operadores em vez de tentar indefinidamente sem visibilidade.

Batimentos cardíacos e ligações estagnadas

  • Rastrear a mensagem de entrada mais recente e o reconhecimento de ping bem-sucedido.
  • Utilizar o intervalo de batimentos cardíacos e o limiar de repouso aprovados para o ambiente de produção.
  • Tratar uma ligação como obsoleta quando o limiar configurado é ultrapassado, mesmo que o soquete TCP ainda pareça aberto.
  • Não reutilizar subscrições de um socket antigo; Volte a subscrever explicitamente após cada reconexão.