連結、訂閱與心跳

連結 6MM WebSocket 串流、訂閱主題、維持連結,並安全處理訊息信封。

以 Markdown 格式查看

利用 WebSocket 串流來接收市場資料和必須保持用戶狀態更新的私密狀態,且這些更新必須保持最新且不需輪詢。

連結 URL

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

私有串流需要認證上下文,如私有通道文件中描述的 listenKey 或存取權杖。

訂閱

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

成功訂閱確認:

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

取消訂閱

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

應用程式 ping

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

訊息信封

公開推送使用一致的信封:

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

營運建議

  • 為每個訂閱、取消訂閱及 ping 請求產生唯一的客戶端 id
  • 將 reconnect 視為新會議,並重新訂閱必要的主題。
  • 驗證回傳的 topic 是否符合您的服務所期望的通道。
  • 在涉及私人訂單或帳戶事件時,保持訊息處理冪分。
  • 記錄連線狀態變更、訂閱確認及異常斷線。

Reconnect 工作流程

  1. 關閉或丟棄先前的插座並建立新的連線。
  2. 使用有效的 listenKey 或存取權杖重新認證私有串流。
  3. 重新訂閱所有必修主題,並等待成功確認。
  4. 在套用增量更新前,先以新的快照取代本地訂單簿狀態。
  5. 若私人事件未被遺漏,應透過 REST 調和未決訂單、立場及平衡。

用有界指數退回搭配抖動來嘗試重連。持續重新連線的客戶端應該會提醒接線員,而不是無限期重試且無法看到。

心跳與陳舊連結

  • 追蹤最近的入站訊息及成功回應 ping。
  • 使用生產環境核准的心跳間隔與空閒閾值。
  • 當設定的閾值超過時,即使 TCP socket 仍然顯示開啟,仍將連線視為過時。
  • 不要重複使用舊套接字的訂閱;每次重新連線後都要明確重新訂閱。
  • [公開市場通道](/developer-api/websocket/public-market-channels):主題、訂單簿連續性、交易、蠟燭及股票行情。

  • [私人用戶通道](/developer-api/websocket/private-user-channel): listenKey 生命週期與認證事件。

  • [整合建議](/developer-api/integration-recommendations):重試、冪等性、監控及發射測試。
  • WebSocket 公開市場資料管道

  • 私人用戶通道

  • 整合建議