WebSocket 连接¶
证据:ptrader-ws-gateway netty/WebSocketHandler.java、docs/WS_API_SPOT.md、Postman OpenAPI-WS 文件夹。
Base¶
wss://<host> — [NEEDS-CONFIRMATION: 各环境公网域名]
公开行情(文档收录)¶
| Path | 行为 |
|---|---|
/openapi/quote/ws/v1/<streamName> |
单流;握手即订阅 |
/openapi/quote/stream?streams=a/b/c |
组合模式;消息包装为 { "stream", "data" } |
示例:
wss://<host>/openapi/quote/ws/v1/btcusdt@aggTrade
wss://<host>/openapi/quote/stream?streams=btcusdt@aggTrade/btcusdt@depth20
私有用户数据¶
通过 REST 创建 / 续期 / 删除 listenKey(/openapi/v1/userDataStream,仅 API Key)。见 私有用户流。
不在公开文档范围¶
| Path | 原因 |
|---|---|
/user、/user/spot、Cookie / 握手后 web 鉴权 |
交易所 Web BFF |
/ws、/ws/spot、/ws/future(遗留别名) |
[NEEDS-CONFIRMATION: 是否对外发布] — 确认前不写入公开指南 |
/openapi/ws/<listenKey>/future |
[NEEDS-CONFIRMATION: Polaris 是否支持 future] |
心跳¶
| 方向 | 机制 |
|---|---|
| 服务端 → 客户端 | WebSocket Ping 每 20s;须在 120s 内 Pong,否则断开 |
| 客户端 → 服务端 | JSON {"ping": <epochMs>} → {"pong": <epochMs>} |
限制¶
| 限制 | 值 |
|---|---|
| 每连接最大流数 | 1024 |
| 客户端消息 | 25 / s |
| 无活跃订阅 | 60s 后断开 |
订阅 / 退订(coins.ph 风格)¶
成功回复形如:{ "result": null, "id": <n> }(LIST 时为订阅列表)。
网关亦接受遗留 { "op": "subscribe", "args": [...] },公开示例统一使用 method / params。