Push Client

SetCallbacks

Purpose

Replaces the callback set used to dispatch push connection, market-data, and account events.

Signature

func (c *PushClient) SetCallbacks(cb Callbacks)

This method only accesses local client state; it sends no server request and declares no market or account permission.

Parameters

ParameterTypeRequiredSDK defaultConstraints
cbCallbacksYesNoneCallback set; handlers left unset remain nil
Callbacks fieldTypeDescription
OnQuotefunc(*pb.QuoteData)Quote callback
OnTickfunc(*pb.TradeTickData)Trade-tick callback
OnDepthfunc(*pb.QuoteDepthData)Quote-depth callback
OnOptionfunc(*pb.QuoteData)Option callback
OnFuturefunc(*pb.QuoteData)Future callback
OnKlinefunc(*pb.KlineData)K-line callback
OnStockTopfunc(*pb.StockTopData)Stock-ranking callback
OnOptionTopfunc(*pb.OptionTopData)Option-ranking callback
OnFullTickfunc(*pb.TickData)Full-tick callback
OnQuoteBBOfunc(*pb.QuoteData)BBO quote callback
OnAssetfunc(*pb.AssetData)Asset callback
OnPositionfunc(*pb.PositionData)Position callback
OnOrderfunc(*pb.OrderStatusData)Order callback
OnTransactionfunc(*pb.OrderTransactionData)Transaction callback
OnConnectfunc()Connection callback
OnDisconnectfunc()Disconnection callback
OnErrorfunc(error)Error callback
OnKickoutfunc(string)Kickout callback

Unset handlers are not called. The current version routes crypto data to OnQuote; OnFullTick and OnQuoteBBO are public fields, but this version does not invoke those callbacks.

Returns

Returns no value.

Invocation example

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

This method returns no response object.


Connect

Purpose

Opens the TLS push connection, authenticates it, waits for CONNECTED, and starts heartbeats.

Signature

func (c *PushClient) Connect() error

Call Connect successfully before subscribing or unsubscribing. Access depends on instrument and data type.

Parameters

No parameters.

Returns

error; nil means authentication completed and the connection-success acknowledgment was received. The default connection timeout is 30 seconds and the default heartbeat interval is 10 seconds.

Automatic reconnect is enabled by default. It starts at 5 seconds, doubles after failures, and caps at 60 seconds. After reconnecting, the client can restore standard market-data subscriptions tracked by symbols. Parameters for market/ranking subscriptions and custom accounts used by account subscriptions are not fully retained; explicitly resubscribe after the connection succeeds. Configure connection behavior with WithAutoReconnect, WithReconnectInterval, WithHeartbeatInterval, and WithConnectTimeout when creating the client.

Invocation example

if err := pc.Connect(); err != nil {
	log.Fatal(err)
}

Disconnect

Purpose

Sends DISCONNECT, closes the transport, waits for reader shutdown, and invokes OnDisconnect.

Signature

func (c *PushClient) Disconnect() error

Calling this method while disconnected returns nil. An explicit disconnect does not trigger automatic reconnect.

Parameters

No parameters.

Returns

error; returns any underlying connection-close error. The method first attempts a disconnect notification, closes the connection, and invokes OnDisconnect.

Invocation example

if err := pc.Disconnect(); err != nil {
	log.Fatal(err)
}

State

Purpose

Returns the current local push connection state.

Signature

func (c *PushClient) State() ConnectionState

This method only accesses local client state; it sends no server request and declares no market or account permission.

Parameters

No parameters.

Returns

ConnectionState: StateDisconnected, StateConnecting, or StateConnected.

Invocation example

result := pc.State()
fmt.Printf("%#v\n", result)
0

GetSubscriptions

Purpose

Returns a copy of locally tracked symbol subscriptions grouped by subject.

Signature

func (c *PushClient) GetSubscriptions() map[SubjectType][]string

This method only accesses local client state; it sends no server request and declares no market or account permission.

Parameters

No parameters.

Returns

map[SubjectType][]string

Invocation example

result := pc.GetSubscriptions()
fmt.Printf("%#v\n", result)
{
  "quote": ["AAPL"]
}

GetAccountSubscriptions

Purpose

Returns locally tracked account-level subscription subjects.

Signature

func (c *PushClient) GetAccountSubscriptions() []SubjectType

This method only accesses local client state; it sends no server request and declares no market or account permission.

Parameters

No parameters.

Returns

[]SubjectType

Invocation example

result := pc.GetAccountSubscriptions()
fmt.Printf("%#v\n", result)
["asset"]


Did this page help you?