推送客户端
设置回调
功能说明
设置回调函数集合。
方法签名
func (c *PushClient) SetCallbacks(cb Callbacks)该方法只操作本地客户端状态,不发起服务端请求,也不声明市场或账户权限。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
cb | Callbacks | 是 | 无 | 回调集合;未设置的回调保持 nil |
Callbacks 字段 | 类型 | 说明 |
|---|---|---|
OnQuote | func(*pb.QuoteData) | 行情回调 |
OnTick | func(*pb.TradeTickData) | 逐笔回调 |
OnDepth | func(*pb.QuoteDepthData) | 深度回调 |
OnOption | func(*pb.QuoteData) | 期权回调 |
OnFuture | func(*pb.QuoteData) | 期货回调 |
OnKline | func(*pb.KlineData) | K 线回调 |
OnStockTop | func(*pb.StockTopData) | 股票榜单回调 |
OnOptionTop | func(*pb.OptionTopData) | 期权榜单回调 |
OnFullTick | func(*pb.TickData) | 全量逐笔回调 |
OnQuoteBBO | func(*pb.QuoteData) | BBO 行情回调 |
OnAsset | func(*pb.AssetData) | 资产回调 |
OnPosition | func(*pb.PositionData) | 持仓回调 |
OnOrder | func(*pb.OrderStatusData) | 订单回调 |
OnTransaction | func(*pb.OrderTransactionData) | 成交回调 |
OnConnect | func() | 连接成功回调 |
OnDisconnect | func() | 断开回调 |
OnError | func(error) | 错误回调 |
OnKickout | func(string) | 踢出回调 |
未设置的函数不会被调用。当前版本将数字货币数据交给 OnQuote;OnFullTick 和 OnQuoteBBO 虽为公开字段,但当前版本不会触发这两个回调。
返回
无返回值。
示例
pc.SetCallbacks(push.Callbacks{OnConnect: func() { fmt.Println("connected") }})返回示例
该方法不返回响应对象。
连接
功能说明
连接到推送服务器并进行认证。
方法签名
func (c *PushClient) Connect() error订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。
参数
无参数。
返回
error;nil 表示连接已完成认证并收到连接成功确认。默认连接超时 30 秒,默认每 10 秒发送心跳。
客户端默认启用自动重连,初始间隔 5 秒并按 2 倍退避,最大 60 秒。重连成功后,客户端可恢复本地按 symbols 记录的标准行情订阅;market/排行榜等订阅参数以及账户订阅使用的自定义账户不会被完整保存,必须在连接成功后显式重新订阅。可在创建客户端时用 WithAutoReconnect、WithReconnectInterval、WithHeartbeatInterval 和 WithConnectTimeout 调整连接行为。
示例
if err := pc.Connect(); err != nil {
log.Fatal(err)
}返回示例
断开连接
功能说明
断开连接。
方法签名
func (c *PushClient) Disconnect() error已断开时调用直接返回 nil。主动断开不会触发自动重连。
参数
无参数。
返回
error;返回底层连接关闭错误。方法会先尝试发送断开通知、关闭连接,并调用 OnDisconnect。
示例
if err := pc.Disconnect(); err != nil {
log.Fatal(err)
}返回示例
获取连接状态
功能说明
获取当前连接状态。
方法签名
func (c *PushClient) State() ConnectionState该方法只操作本地客户端状态,不发起服务端请求,也不声明市场或账户权限。
参数
无参数。
返回
ConnectionState:StateDisconnected、StateConnecting 或 StateConnected。
示例
result := pc.State()
fmt.Printf("%#v\n", result)返回示例
0查询已订阅标的
功能说明
获取当前订阅状态。
方法签名
func (c *PushClient) GetSubscriptions() map[SubjectType][]string该方法只操作本地客户端状态,不发起服务端请求,也不声明市场或账户权限。
参数
无参数。
返回
map[SubjectType][]string
示例
result := pc.GetSubscriptions()
fmt.Printf("%#v\n", result)返回示例
{
"quote": ["AAPL"]
}查询账户订阅
功能说明
获取账户级别订阅状态。
方法签名
func (c *PushClient) GetAccountSubscriptions() []SubjectType该方法只操作本地客户端状态,不发起服务端请求,也不声明市场或账户权限。
参数
无参数。
返回
[]SubjectType
示例
result := pc.GetAccountSubscriptions()
fmt.Printf("%#v\n", result)返回示例
["asset"]Updated about 22 hours ago
