Conexión, Suscripción y Latido

Conéctate a 6MM WebSocket streams, suscríbete a temas, mantén vivas las conexiones y procesa los sobres de mensajes de manera segura.

Ver como Markdown

Usa WebSocket flujos para datos de mercado y actualizaciones privadas del estado del usuario que deben mantenerse actualizadas sin necesidad de sondeos.

Conexión URL

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

Los flujos privados requieren contexto de autenticación como un listenKey o token de acceso, como se describe en la documentación del canal privado.

Suscríbete

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

Reconocimiento de suscripción exitoso:

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

Darse de baja

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

Ping de aplicación

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

Sobre de mensaje

Los impulsos públicos usan un sobre consistente:

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

Recomendaciones operativas

  • Generar un id único del lado del cliente para cada solicitud de suscripción, cancelación y ping.
  • Tratar la reconexión como una nueva sesión y volver a suscribirse a los temas requeridos.
  • Validar que el topic devuelto coincida con el canal que espera tu servicio.
  • Mantener el procesamiento de mensajes idempotente cuando se involucran eventos privados de orden o cuenta.
  • Cambios en el estado de la conexión, acuses de recibo de suscripción y desconexiones anormales.

Flujo de trabajo de reconexión

  1. Cierra o desecha el socket anterior y crea una nueva conexión.
  2. Re-autenticar flujos privados con un listenKey o token de acceso válido.
  3. Volver a suscribirse a todos los temas requeridos y esperar los reconocimientos exitosos.
  4. Reemplazar el estado local del libro de órdenes con una nueva instantánea antes de aplicar actualizaciones incrementales.
  5. Reconciliar órdenes abiertas, posiciones y saldos mediante REST si se hayan pasado por alto eventos privados.

Usa retroceso exponencial limitado con jitter para intentos de reconexión. Un cliente que se reconecta continuamente debería alertar a los operadores en lugar de intentar indefinidamente sin visibilidad.

Latidos y conexiones ranciadas

  • Rastrear el mensaje entrante más reciente y el reconocimiento de ping exitoso.
  • Usar el intervalo de latidos cardíacos y el umbral de reposo aprobados para el entorno de producción.
  • Tratar una conexión como obsoleta cuando se supera el umbral configurado, incluso si el zócalo de TCP sigue apareciendo abierto.
  • No reutilizar suscripciones de un socket antiguo; Suscribe de nuevo explícitamente después de cada reconexión.