Conexão, Assinatura e Batimentos cardíacos

Conecte-se a 6MM WebSocket streams, assine tópicos, mantenha as conexões vivas e processe envelopes de mensagens com segurança.

Ver como Markdown

Use WebSocket streams para dados de mercado e atualizações privadas do estado dos usuários que devem se manter atualizadas sem necessidade de pesquisas.

Conexão URL

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

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

Assine

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

Reconhecimento de assinatura bem-sucedido:

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

Desinscrição

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

Ping da aplicativo

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

Envelope de mensagens

Push públicos usam um envelope consistente:

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

Recomendações operacionais

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

Fluxo de trabalho de reconexão

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

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

Batimentos cardíacos e conexõ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 ociosidade aprovados para o ambiente de produção.
  • Tratar uma conexão como obsoleta quando o limiar configurado é ultrapassado, mesmo que o soquete TCP ainda pareça aberto.
  • Não reutilizar assinaturas de um socket antigo; reassinar explicitamente após cada reconexão.