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(字符串)。切勿混用。