Connection and Callbacks

Example context

import { createClientConfig, PushClient } from '@tigeropenapi/tigeropen';

const config = createClientConfig({
  tigerId: 'your_tiger_id',
  privateKey: 'your_private_key',
  account: 'your_account',
});

const pushClient = new PushClient(config);

// Set up callback functions
pushClient.setCallbacks({
  onConnect: () => {
    console.log('Connected');
    // Subscribe after connection is established
    pushClient.subscribeQuote(['AAPL', '00700']);
  },
  onQuote: (data) => {
    console.log('Quote update:', data.symbol, data.latestPrice);
  },
  onTick: (data) => {
    console.log('Tick update:', data.symbol, data.volume);
  },
  onKline: (data) => {
    console.log('Kline update:', data.symbol);
  },
  onDisconnect: () => {
    console.log('Disconnected');
  },
  onError: (err) => {
    console.error('Error:', err.message);
  },
});

// Initiate connection
pushClient.connect();

state

Signature

get state(): ConnectionState

Purpose

Reads the current push connection state.

Parameters, defaults, and constraints

No parameters.

Returns

ConnectionState

Possible values: ConnectionState.Disconnected, ConnectionState.Connecting, ConnectionState.Connected

Type-checked example

const result = pushClient.state;
console.log(result);

setCallbacks

Signature

setCallbacks(cb: Callbacks): void

Purpose

Replaces the current push callback set. All push data is received asynchronously through callbacks.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
cbCallbacksYesNone
cb.onQuote((data: QuoteData) => void) | undefinedNoNone
cb.onTick((data: TradeTickData) => void) | undefinedNoNone
cb.onDepth((data: QuoteDepthData) => void) | undefinedNoNone
cb.onOption((data: QuoteData) => void) | undefinedNoNone
cb.onFuture((data: QuoteData) => void) | undefinedNoNone
cb.onKline((data: KlineData) => void) | undefinedNoNone
cb.onStockTop((data: StockTopData) => void) | undefinedNoNone
cb.onOptionTop((data: OptionTopData) => void) | undefinedNoNone
cb.onFullTick((data: TickData) => void) | undefinedNoNone
cb.onQuoteBBO((data: QuoteData) => void) | undefinedNoNone
cb.onAsset((data: AssetData) => void) | undefinedNoNone
cb.onPosition((data: PositionData) => void) | undefinedNoNone
cb.onOrder((data: OrderStatusData) => void) | undefinedNoNone
cb.onTransaction((data: OrderTransactionData) => void) | undefinedNoNone
cb.onConnect(() => void) | undefinedNoNone
cb.onDisconnect(() => void) | undefinedNoNone
cb.onError((err: Error) => void) | undefinedNoNone
cb.onKickout((message: string) => void) | undefinedNoNone

Returns

void

Type-checked example

pushClient.setCallbacks({
  onConnect: () => {
    console.log('Connected');
    pushClient.subscribeQuote(['AAPL']);
  },
  onQuote: (data) => {
    console.log(`${data.symbol} latest: ${data.latestPrice}`);
  },
  onError: (err) => {
    console.error('Push error:', err.message);
  },
});

connect

Signature

connect(): Promise<void>

Purpose

Connects to the push server and authenticates. Triggers the onConnect callback upon success.

Parameters, defaults, and constraints

No parameters.

Returns

Promise<void>

Type-checked example

await pushClient.connect();

disconnect

Signature

disconnect(): void

Purpose

Closes the push connection and stops automatic reconnect. Triggers the onDisconnect callback.

Parameters, defaults, and constraints

No parameters.

Returns

void

Type-checked example

pushClient.disconnect();

getSubscriptions

Signature

getSubscriptions(): Map<SubjectType, string[]>

Purpose

Gets the current market data subscriptions.

Parameters, defaults, and constraints

No parameters.

Returns

Map<SubjectType, string[]>

Type-checked example

const subs = pushClient.getSubscriptions();
// Map { 'Quote' => ['AAPL', '00700'], 'Tick' => ['AAPL'] }
console.log(subs);

getAccountSubscriptions

Signature

getAccountSubscriptions(): Map<SubjectType, string>

Purpose

Gets the current account push subscriptions.

Parameters, defaults, and constraints

No parameters.

Returns

Map<SubjectType, string>

Type-checked example

const subs = pushClient.getAccountSubscriptions();
console.log(subs);

Did this page help you?