连接与回调

示例上下文

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);

// 设置回调函数
pushClient.setCallbacks({
  onConnect: () => {
    console.log('连接成功');
    // 连接成功后开始订阅
    pushClient.subscribeQuote(['AAPL', '00700']);
  },
  onQuote: (data) => {
    console.log('行情推送:', data.symbol, data.latestPrice);
  },
  onTick: (data) => {
    console.log('逐笔推送:', data.symbol, data.volume);
  },
  onKline: (data) => {
    console.log('K线推送:', data.symbol);
  },
  onDisconnect: () => {
    console.log('连接断开');
  },
  onError: (err) => {
    console.error('错误:', err.message);
  },
});

// 发起连接
pushClient.connect();

获取连接状态

签名

get state(): ConnectionState

用途

读取当前推送连接状态。

参数、默认值与约束

无参数。

返回

ConnectionState

可能的值:ConnectionState.DisconnectedConnectionState.ConnectingConnectionState.Connected

示例

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

设置回调

签名

setCallbacks(cb: Callbacks): void

用途

替换当前推送回调集合。所有推送数据通过回调函数异步接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
cbCallbacksNone
cb.onQuote((data: QuoteData) => void) | undefined
cb.onTick((data: TradeTickData) => void) | undefined
cb.onDepth((data: QuoteDepthData) => void) | undefined
cb.onOption((data: QuoteData) => void) | undefined
cb.onFuture((data: QuoteData) => void) | undefined
cb.onKline((data: KlineData) => void) | undefined
cb.onStockTop((data: StockTopData) => void) | undefined
cb.onOptionTop((data: OptionTopData) => void) | undefined
cb.onFullTick((data: TickData) => void) | undefined
cb.onQuoteBBO((data: QuoteData) => void) | undefined
cb.onAsset((data: AssetData) => void) | undefined
cb.onPosition((data: PositionData) => void) | undefined
cb.onOrder((data: OrderStatusData) => void) | undefined
cb.onTransaction((data: OrderTransactionData) => void) | undefined
cb.onConnect(() => void) | undefined
cb.onDisconnect(() => void) | undefined
cb.onError((err: Error) => void) | undefined
cb.onKickout((message: string) => void) | undefined

返回

void

示例

pushClient.setCallbacks({
  onConnect: () => {
    console.log('已连接');
    pushClient.subscribeQuote(['AAPL']);
  },
  onQuote: (data) => {
    console.log(`${data.symbol} 最新价: ${data.latestPrice}`);
  },
  onError: (err) => {
    console.error('推送错误:', err.message);
  },
});

连接

签名

connect(): Promise<void>

用途

连接推送服务器并完成鉴权。连接成功后会触发 onConnect 回调。

参数、默认值与约束

无参数。

返回

Promise<void>

示例

await pushClient.connect();

断开连接

签名

disconnect(): void

用途

主动断开推送连接并停止自动重连。断开后会触发 onDisconnect 回调。

参数、默认值与约束

无参数。

返回

void

示例

pushClient.disconnect();

查询已订阅标的

签名

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

用途

查询当前行情订阅列表。

参数、默认值与约束

无参数。

返回

Map<SubjectType, string[]>

示例

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

查询账户订阅

签名

getAccountSubscriptions(): Map<SubjectType, string>

用途

查询当前账户推送订阅。

参数、默认值与约束

无参数。

返回

Map<SubjectType, string>

示例

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

Did this page help you?