连接步骤
1. 打开 WebSocket
使用x-api-key 头连接到退出智能流端点:
2. 接收 hello_ok
连接打开后,服务器立即发送 hello_ok 消息:
limits 对象反映你等级的容量。参见速率限制和等级了解详情。
3. 发送 configure
收到 hello_ok 后,发送包含钱包和策略的 configure 消息:
4. 接收确认
服务器用已配置钱包中已持有代币的初始balance_update 消息响应。如果检测到仓位,你还会收到 position_opened。
limits 对象
| 字段 | 类型 | 说明 |
|---|---|---|
hi_capacity | number | 最大高优先级消息缓冲数。 |
pnl_flush_ms | number | 盈亏更新刷新间隔(毫秒)。 |
max_positions_per_session | number | 每个会话最大追踪仓位数。 |
max_wallets_per_session | number | 每个会话最大钱包数。 |
max_positions_per_wallet | number | 每个钱包最大追踪仓位数。 |
max_sessions_per_api_key | number | 每个 API 密钥最大并发会话数。 |
重连
SDK 自动处理重连。当 WebSocket 断开时:- 客户端以 100 毫秒为起始的指数退避等待。
- 退避在每次尝试时翻倍,最大 2,000 毫秒。
- 成功重连后,客户端重新发送
configure消息。 - 服务器重新发送现有持仓的
balance_update和position_opened事件。
Ping 和 Pong
客户端 Ping
发送ping 以测量往返延迟:
pong 响应:
服务器 Ping
服务器也可能发送 WebSocket 协议级别的 ping。SDK 自动响应 pong 帧。StreamClient vs StreamSession
StreamClient
底层客户端管理原始 WebSocket 连接:
- 处理连接、重连和消息帧。
- 从
recv()返回原始ServerMessage对象。 - 提供
StreamSender用于发送客户端消息。 - 支持通过
connectLanes()的通道分离,将高优先级消息(退出信号、仓位事件)与低优先级消息(pnl_update)分开。
StreamSession
高级会话用以下功能包装 StreamClient:
- 仓位追踪:自动维护按 ID 和代币账户的未平仓位映射。
- 类型化事件:返回附带
PositionHandle的StreamEvent对象。 - 截止时间计时器:在
deadline_timeout_sec后自动请求退出信号。 - 策略更新:
updateStrategy()和updateStrategyOptional()方法。
StreamSession。
通道
通道分离将消息流分成两个接收器:- 高优先级通道:
hello_ok、error、balance_update、position_opened、position_closed、exit_signal_with_tx - 低优先级通道:
pnl_update
connectLanes() 可用:

