端点
连接流程
1. 连接
打开WebSocket连接。连接时无需身份验证。2. 登录
在连接后 30秒 内发送登录消息:channels 数组订阅所有可用频道。要订阅特定频道:
3. 登录确认
成功后,服务器响应:4. 接收更新
数据消息格式如下:
各频道完整的负载结构见下文负载结构。
5. 保持活跃
服务器每 30秒 发送一次 ping:频道
客户端过滤频道
这些频道仅传递属于您clientName 的数据:
全局频道
所有订阅者都会收到:可靠投递与确认
默认情况下,消息是「发后即忘」的——快速,但断连期间丢失的消息就此消失。在登录时启用可靠投递,即可获得带确认与重放的至少一次投递:data 消息都携带 requireAck: true,你必须确认它,服务端才能将其从缓冲区释放:
- 服务端为每个订阅缓冲最多 100 条未确认消息,并重发任何 30 秒内未被确认的消息。
seq按订阅且严格递增,因此seq出现间隙意味着你漏掉了消息。- 要在重连后恢复漏掉的消息,从你处理的最后一个
seq请求重放:
变更订阅
无需重连即可变更频道:channels_updated 回复。
赔率单订阅
betslip 频道为你关注的选项推送实时赔率。有两种订阅方式:
- 通过 REST——调用
GET /betslip会注册一个 60 秒滑动窗口;每次调用重置计时器并立即通过 WebSocket 广播一份快照。 - 通过 WebSocket——发送
subscribe_betslip消息并附显式ttl(10–3600 秒)与博彩商列表以获得更精细的控制,用unsubscribe_betslip提前取消。
subscribed_betslip 确认见下文赔率单订阅消息。
示例:Python 客户端
示例:JavaScript 客户端
消息类型
客户端 → 服务端
服务端 → 客户端
赔率单订阅消息
在订阅前,betslip 频道必须在你的订阅中(通过 login 或 update_channels 添加)。
subscribe_betslip
bookmakers必须为非空列表。ttl可选(秒),限制在 10–3600 秒;省略时默认 60 秒。- 对同一选项重新订阅会刷新 TTL 并更新博彩商集合(幂等)。
skipped 数组中返回。每客户端最多 20 个活跃赔率单订阅(REST + WS 合计)。
unsubscribe_betslip
负载结构
数据消息将频道负载包裹在信封{type, channel, event, payload, ts, seq} 中。orders、bets 与 settlements 频道投递完整数据库行(row_to_json);balance、emergency 与 betslip 使用自定义结构。
Orders
orders 表的完整行:
Bets / settlements
bets 表的完整行(settlements 频道使用相同结构):
同时订阅
bets 与 settlements 会使结算更新被投递两次——每个频道各一次。若想要专门的结算流,请单独使用 settlements。Balance
Emergency
Betslip
在赔率单订阅活跃期间推送。对于期货,负载携带futureId 与 participantId 而非 fixtureId。
赛事:
期货赔率单的 WebSocket 广播尚未启用。订阅基础设施已就位,将在后续版本中激活。
连接限制
后续步骤
币种与额度
各币种下数值如何计价与换算。
错误处理
处理错误响应与被拒原因。