端点
生产网关:推荐的集成流程(生产环境)
使用REST获取快照,使用WebSocket获取实时更新:- 通过REST获取初始快照(例如
/fixtures、/fixtures/odds) - 连接到WebSocket并发送带有过滤器的
login - 收到
login_ok后开始处理更新 - 持久化
serverEpoch和每个频道的lastSeenId(来自entryId) - 重新连接时,发送
serverEpoch+lastSeenId以恢复 - 如果收到
snapshot_required,通过REST重新获取快照
登录模式
WebSocket支持仅登录订阅。要更改过滤器或频道,请使用新的login重新连接。
消息信封
所有更新共享一个公共信封:channel– 流名称(例如odds、fixtures)type– 消息类型(目前始终为UPDATE)payload– 频道特定数据ts– UTC时间戳(毫秒)entryId– 用于重放/恢复的游标
entryId不保证是连续的。有关完整说明,请参阅恢复和重放。
编码:JSON vs 二进制
在登录时使用receiveType控制。
"json"(默认)— 所有消息作为UTF-8 JSON到达"binary"— 数据帧使用MessagePack;控制帧保持JSON
控制消息如login_ok、snapshot_required和resume_complete始终是JSON,即使在二进制模式下也是如此。
频道类型
- 赛事范围:
fixtures、scores、odds、bookmakers。— 有效载荷包含fixtureId - 期货范围:
futures、bookmakersFutures、oddsFutures— 包含futureId - 全局:
currencies— 无ID
有关每个频道的模式,请参阅/websocket/channels/*。
吞吐量指南
- 对于高容量频道如
odds,首选receiveType: "binary" - 使用过滤器(
sportIds、bookmakers)减少噪音 odds应被视为最新状态,而不是交易记录账本
WebSocket限制
| 限制类型 | 描述 |
|---|---|
| 并发连接 | 按apiKey组强制执行(最大:5)。参见错误4003。 |
| 背压 | 如果您的客户端无法跟上,连接将被关闭(4002)。 |
| 重放窗口 | 参见恢复和重放中的resumeWindowMs |
| 消息速率 | 没有明确限制,但建议使用过滤器以提高性能 |