安装
构建客户端
.Build(ctx) 会在返回前建立 WebSocket 连接,传入的 context 用于控制初始拨号。若连接失败,你会立即得到错误。之后客户端会一直运行,直到 Close()。
构建器方法
.URL(url) - 主 WebSocket 端点。回退读取 ORBITFLARE_WS_URL 环境变量。
.URLs(urls...) - 一次设置主端点与回退端点。
.FallbackURL(url) / .FallbackURLs(urls...) - 添加故障转移端点。重连时,SDK 会轮换尝试。
.APIKey(key) - 许可证密钥。回退读取 ORBITFLARE_LICENSE_KEY 环境变量。在连接时注入 URL,绝不出现在日志或错误信息中。
.Retry(policy) - 重连退避。默认:100ms 初始、30s 上限、2 倍系数、无限次。
.PingInterval(duration) - SDK 发送 WebSocket Ping 帧的频率。默认 10s。
.MaxMissedPongs(n) - 连接被判定为死连接前允许多少次未获响应的 ping。默认 3。
.Logger(logger) - 用于连接生命周期事件的 *slog.Logger。未设置时由 ORBITFLARE_LOG 控制。
可用订阅
SlotSubscribe(ctx)
每当一个槽位被处理、确认或最终确定时触发。
slot、parent 与 root 字段的 JSON:
AccountSubscribe(ctx, address, commitment)
当指定账户的数据发生变化时触发。
LogsSubscribe(ctx, mentions, commitment)
对提及给定地址的交易触发。传入空切片以匹配所有交易。
SignatureSubscribe(ctx, signature, commitment)
当交易达到给定承诺级别时触发一次。适用于确认你刚发送的交易。
读取事件
所有订阅都返回一个*ws.Subscription。调用 Next(ctx) 获取下一条事件:
Next(ctx) 返回 (json.RawMessage, bool)。当 ok 为 false 时订阅已结束(context 被取消或客户端已关闭)。
取消订阅
多路订阅
所有订阅运行在单个 WebSocket 连接上。SDK 在内部将通知路由到正确的订阅。重连
若连接断开,后台 goroutine 会以指数退避重连并自动重新订阅一切。你的Next(ctx) 调用会照常工作,连接恢复后事件即恢复。