订阅 WebSocket Topic
订阅 topic 后,Gateway 会在同一个 WebSocket 连接里推送消息。一个连接可以订阅多类数据,但程序必须自己维护订阅状态。
建议维护的本地状态
Section titled “建议维护的本地状态”| 状态 | 用途 |
|---|---|
| 已订阅 conid | 避免重复订阅同一个行情。 |
| 已订阅 topic 类型 | 重连后恢复订阅。 |
| 最后消息时间 | 判断推送是否停滞。 |
| 取消中的 topic | 避免取消后又重新订阅。 |
WebSocket 已连接 -> 发送 ech+hb -> 发送 smd+265598+{"fields":["31"]} -> 收到行情消息 -> 记录订阅状态umd+265598+{}取消订阅后,本地也要删除对应状态。否则重连恢复时可能又把它订回去。
| 场景 | 建议 |
|---|---|
| 网络短断 | 重新连接后发送心跳,再恢复订阅。 |
| Gateway 会话过期 | 不要盲目重连,先让用户重新登录。 |
| 权限错误 | 不重复订阅同一无权限 topic,展示错误说明。 |
| 消息格式变化 | 保留原始消息,解析失败时不中断整个连接。 |
订阅越多,对行情权限和 Gateway 负载要求越高。新手先用一两个 conid 跑通链路,再扩大范围。