Orderbook 維護
如何正確在本地維護一個orderbook副本
全深度頻道 depth@<symbol> 採用訂閱即下發快照 + 增量的範式(類 Bybit)。不再 REST 拉快照、不再對齊撮合 updateId。
所有幀均用統一信封 {ch, event, data}。按 ch = depth_update 分發;下述字段(type、u、pu、b、a)位於 data 內。
1.訂閱 depth@btc_usdt。
2.第一幀爲快照(data.type = snapshot):整本替換本地簿,並記錄 lastU = data.u。
3.之後每個增量(data.type = delta):若 data.pu == lastU,逐檔應用並令 lastU = data.u;否則丟棄本地簿並重訂閱(或等待服務端主動重發快照)。
4.每檔爲該價位掛單量絕對值;量爲 "0" 表示刪除該價位,否則 upsert。
5.服務端在重啓 / 客戶端落後時主動重發快照,故序列斷裂在下一個快照自愈。
注意:此處 data.u 爲 push 本地序列(per-symbol 單調 +1),與定檔深度頻道(depth5|depth10|depth20|depth50|depth100@<symbol>,ch = depth,其 data.id 爲撮合 updateId 字符串)不同源,切勿混用。