推送客户端

设置回调

功能说明

设置回调函数集合。

方法签名

func (c *PushClient) SetCallbacks(cb Callbacks)

该方法只操作本地客户端状态,不发起服务端请求,也不声明市场或账户权限。

参数

参数类型必填SDK 默认值约束
cbCallbacks回调集合;未设置的回调保持 nil
Callbacks 字段类型说明
OnQuotefunc(*pb.QuoteData)行情回调
OnTickfunc(*pb.TradeTickData)逐笔回调
OnDepthfunc(*pb.QuoteDepthData)深度回调
OnOptionfunc(*pb.QuoteData)期权回调
OnFuturefunc(*pb.QuoteData)期货回调
OnKlinefunc(*pb.KlineData)K 线回调
OnStockTopfunc(*pb.StockTopData)股票榜单回调
OnOptionTopfunc(*pb.OptionTopData)期权榜单回调
OnFullTickfunc(*pb.TickData)全量逐笔回调
OnQuoteBBOfunc(*pb.QuoteData)BBO 行情回调
OnAssetfunc(*pb.AssetData)资产回调
OnPositionfunc(*pb.PositionData)持仓回调
OnOrderfunc(*pb.OrderStatusData)订单回调
OnTransactionfunc(*pb.OrderTransactionData)成交回调
OnConnectfunc()连接成功回调
OnDisconnectfunc()断开回调
OnErrorfunc(error)错误回调
OnKickoutfunc(string)踢出回调

未设置的函数不会被调用。当前版本将数字货币数据交给 OnQuoteOnFullTickOnQuoteBBO 虽为公开字段,但当前版本不会触发这两个回调。

返回

无返回值。

示例

pc.SetCallbacks(push.Callbacks{OnConnect: func() { fmt.Println("connected") }})

返回示例

该方法不返回响应对象。


连接

功能说明

连接到推送服务器并进行认证。

方法签名

func (c *PushClient) Connect() error

订阅/退订前必须成功 Connect。所需行情权限取决于标的和数据类型。

参数

无参数。

返回

errornil 表示连接已完成认证并收到连接成功确认。默认连接超时 30 秒,默认每 10 秒发送心跳。

客户端默认启用自动重连,初始间隔 5 秒并按 2 倍退避,最大 60 秒。重连成功后,客户端可恢复本地按 symbols 记录的标准行情订阅;market/排行榜等订阅参数以及账户订阅使用的自定义账户不会被完整保存,必须在连接成功后显式重新订阅。可在创建客户端时用 WithAutoReconnectWithReconnectIntervalWithHeartbeatIntervalWithConnectTimeout 调整连接行为。

示例

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

该方法只操作本地客户端状态,不发起服务端请求,也不声明市场或账户权限。

参数

无参数。

返回

ConnectionStateStateDisconnectedStateConnectingStateConnected

示例

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"]


Did this page help you?