Skip to main content
WebSocket 订阅推送连接建立后的变化。如果还需要当前状态,先通过 HTTP 获取快照;订阅并不是历史查询。

连接并订阅

使用 Node.js 20 或更新版本。安装 ws,设置 RPC API 密钥,并选择经常变化的账户:
保存为 accounts.mjs,运行 node accounts.mjs,按 Ctrl+C 停止。已有订阅 ID 时,示例会先取消订阅再关闭连接。
accounts.mjs
订阅成功响应只确认订阅已建立。账户在指定确认级别发生变化后,才会收到通知。

请求 ID 与订阅 ID

发送的 id 用于匹配请求和响应。服务端在 result 中返回另一个订阅 ID。通知在 params.subscription 中携带该 ID;在同一连接上将它传给对应的取消订阅方法。

选择订阅

标准通知语义见 Solana WebSocket 参考。Shredstream 在执行元数据可用之前传递交易,应将其视为暂定数据,并通过 RPC 确认执行结果。

断线后恢复

使用带随机抖动和次数上限的退避重新连接,然后重新发送订阅请求。旧连接的订阅 ID 不能复用。通过 HTTP 重新获取账户状态,按上下文 slot 与缓冲的通知核对。如果不能遗漏交易,需要另行补查历史;重连不会重放错过的更新。 限制处理队列长度并监控积压。消费者跟不上时,缩小订阅范围或把耗时解码移出消息回调。查看套餐的连接数限制。