Push Client
SetCallbacks
SetCallbacksPurpose
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
| Parameter | Type | Required | SDK default | Constraints |
|---|---|---|---|---|
cb | Callbacks | Yes | None | Callback set; handlers left unset remain nil |
Callbacks field | Type | Description |
|---|---|---|
OnQuote | func(*pb.QuoteData) | Quote callback |
OnTick | func(*pb.TradeTickData) | Trade-tick callback |
OnDepth | func(*pb.QuoteDepthData) | Quote-depth callback |
OnOption | func(*pb.QuoteData) | Option callback |
OnFuture | func(*pb.QuoteData) | Future callback |
OnKline | func(*pb.KlineData) | K-line callback |
OnStockTop | func(*pb.StockTopData) | Stock-ranking callback |
OnOptionTop | func(*pb.OptionTopData) | Option-ranking callback |
OnFullTick | func(*pb.TickData) | Full-tick callback |
OnQuoteBBO | func(*pb.QuoteData) | BBO quote callback |
OnAsset | func(*pb.AssetData) | Asset callback |
OnPosition | func(*pb.PositionData) | Position callback |
OnOrder | func(*pb.OrderStatusData) | Order callback |
OnTransaction | func(*pb.OrderTransactionData) | Transaction callback |
OnConnect | func() | Connection callback |
OnDisconnect | func() | Disconnection callback |
OnError | func(error) | Error callback |
OnKickout | func(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
ConnectPurpose
Opens the TLS push connection, authenticates it, waits for CONNECTED, and starts heartbeats.
Signature
func (c *PushClient) Connect() errorCall 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
DisconnectPurpose
Sends DISCONNECT, closes the transport, waits for reader shutdown, and invokes OnDisconnect.
Signature
func (c *PushClient) Disconnect() errorCalling 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
StatePurpose
Returns the current local push connection state.
Signature
func (c *PushClient) State() ConnectionStateThis 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)0GetSubscriptions
GetSubscriptionsPurpose
Returns a copy of locally tracked symbol subscriptions grouped by subject.
Signature
func (c *PushClient) GetSubscriptions() map[SubjectType][]stringThis 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
GetAccountSubscriptionsPurpose
Returns locally tracked account-level subscription subjects.
Signature
func (c *PushClient) GetAccountSubscriptions() []SubjectTypeThis 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"]Updated about 7 hours ago
