Skip to content

订阅机制

交易推送采用连接即订阅模型:客户端完成 WebSocket 连接和登录鉴权后,服务端会自动推送当前鉴权用户的交易事件,无需客户端发送额外的订阅请求。

与行情推送的区别

行情推送需要客户端显式声明订阅的标的和数据类型;交易推送则不同:

维度行情推送交易推送
订阅方式显式订阅,需指定标的代码和数据类型隐式订阅,鉴权后自动生效
推送范围仅推送已订阅的标的和类型推送鉴权账户下所有账户的全部事件类型
取消订阅可随时反订阅断开连接即停止接收

事件覆盖范围

鉴权成功后,客户端将自动接收以下全部事件类型,无法单独过滤某类事件:

事件类型说明
EVENT_NEW下单成功
EVENT_REPLACED改单成功
EVENT_CANCELED撤单成功
EVENT_EXPIRED订单过期
EVENT_FILL成交事件(含部分成交和全部成交)
EVENT_NEW_REJECTED下单失败
EVENT_REPLACE_REJECTED改单失败
EVENT_CANCEL_REJECTED撤单失败
EVENT_FILL_CORRECT成交修正
EVENT_FILL_CANCEL成交撤销

各事件的消息结构和字段说明详见 数据格式

账户维度说明

服务端按鉴权用户的账户维度推送事件,即推送该用户名下所有交易账户的事件。推送消息中的 user_info.acc_id 字段标识事件所属的具体交易账户。如果同一用户持有多个交易账户,所有账户的事件都会在同一连接上推送,客户端应根据 acc_id 区分来源。

行为说明

事件推送时机

服务端在交易事件发生时实时推送,事件到达时间取决于网络状况和服务端处理延迟,不保证固定的推送间隔。

不补发历史事件

连接断开期间发生的交易事件不会在重连后补发。如需查询历史订单或成交记录,请使用以下 REST 接口:

重连后恢复

连接断开并重新鉴权后,服务端会自动重新建立推送通道,继续推送后续发生的事件。

客户端实现建议

  • 不要依赖推送作为唯一的状态来源:推送适合实时通知,首次加载页面或断线后的状态补齐,建议先调用 REST 接口查询完整状态。
  • 处理重复事件:在极少数网络抖动或服务端重试场景下,可能收到重复的事件推送。建议客户端按 event_id 做幂等处理。
  • 不要依赖事件顺序:网络抖动可能导致事件乱序到达。如需还原状态,应以事件中的 order_statusevent_time_us 等字段为准,而非推送顺序。

下一步