預測市場 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 連線很簡單。透過訂閱簿、增量更新、重新連線和場地特定的頻率維持正確的簿才是真正的工程工作。
免費開始