预测市场 WebSocket API:安全地重建活跃簿
建立一个 socket 连接很简单。通过种子、增量更新、重连和特定场地的节奏维护一个正确的簿才是真正的工程工作。
DepthFeed··9 min
一个预测市场 WebSocket 客户端需要一个完整的初始簿、确定性的更新顺序、源和接收时间戳、心跳处理以及在任何间隙后的恢复路径。Polymarket 可以从事件驱动的 CLOB 更新中捕获;Kalshi 数据可能通过不同的场地机制到达。只有在保留这些源差异而不是假装每个场地具有相同的传输方式时,规范化的下游框架才有用。
最小的正确状态机
- 在订阅之前解析稳定的市场和结果标识符。
- 在应用增量更改之前加载或接收完整的种子簿。
- 按照文档化的源顺序应用更新,并拒绝过时的状态。
- 独立跟踪每个连接的心跳或最后消息时间。
- 在序列间隙或不确定的重连时,丢弃本地簿并重新播种。
- 发布源时间、接收时间和明确的快照与增量标志到下游。
快照和增量不能互换
快照替换状态;增量修改它。将一个当作另一个会导致一个看起来合理但保留已删除层级或删除未更改大小的簿。为层级插入、大小替换、删除和交叉簿拒绝编写明确的测试。
下游消费者不应该需要猜测他们是否收到了完整的阶梯。包括消息类型或在简单性值得额外带宽时提供规范化的完整簿框架。
场地感知规范化
DepthFeed 从 CLOB 流中捕获 Polymarket 并记录规范化的观察结果。Kalshi 体育和加密货币书籍遵循文档化的场地特定收集路径,包括适用的自适应公共 REST。下游模式可以保持一致,而元数据可以识别如何以及何时观察到每个源。
对于付费计划,DepthFeed 的 WebSocket 提供具有计划特定的连接和订阅限制的规范化实时簿通道。历史 REST 查询使用相同的大小形状,这使得在实时监控和回放中重用解析和填充逻辑成为可能。
生产故障测试
| 故障 | 预期行为 | 不安全行为 |
|---|---|---|
| 连接中断 | 重新连接、重新播种、从已知状态恢复 | 继续修改过时的本地簿 |
| 重复更新 | 幂等处理或源顺序检查 | 将休息大小加倍 |
| 乱序更新 | 拒绝或重建 | 在没有证据的情况下按到达顺序应用 |
| 慢速消费者 | 反压、合并或断开连接策略 | 无界内存增长 |
| 最近没有更新 | 按市场暴露新鲜度 | 报告最后价格为实时 |
Key takeaways
- 01在增量可以形成可信的簿之前,必须存在完整的种子。
- 02重新连接不确定性应该触发重新播种,而不是乐观的继续。
- 03源时间与接收时间回答不同的延迟问题。
- 04规范化应该保留场地特定的捕获元数据。
- 05最安全的实时和历史 API 共享一个明确的阶梯形状。
建立一个 socket 连接很简单。通过种子、增量更新、重连和特定场地的节奏维护一个正确的簿才是真正的工程工作。
免费开始