连接与回调

示例上下文

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

const config = createClientConfig();

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.ticks.length);
  },
  onKline: (data) => {
    console.log('K 线推送:', data.symbol);
  },
  onDisconnect: () => {
    console.log('连接断开');
  },
  onError: (err) => {
    console.error('错误:', err.message);
  },
});

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

获取连接状态

签名

get state(): ConnectionState

用途

读取当前推送连接状态。

参数、默认值与约束

无参数。

返回

ConnectionState

可能的值:ConnectionState.Disconnected、ConnectionState.Connecting、ConnectionState.Connected

示例

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

设置回调

签名

setCallbacks(cb: Callbacks): void

用途

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

参数、默认值与约束

参数类型必填SDK 默认值约束
cbCallbacks是无Callbacks 由内部 push 模块导出,但包的 exports 仅开放根入口,而根入口未重新导出该类型,因此当前没有受支持的公开导入路径;对象字面量的回调参数仍可由 setCallbacks 推断
cb.onQuote行情数据回调否无参数类型由上下文推断
cb.onTickSDK 解码逐笔回调否无参数类型由上下文推断
cb.onDepth深度行情回调否无参数类型由上下文推断
cb.onOption期权行情回调否无参数类型由上下文推断
cb.onFuture期货行情回调否无参数类型由上下文推断
cb.onKlineK 线回调否无参数类型由上下文推断
cb.onStockTop股票榜单回调否无参数类型由上下文推断
cb.onOptionTop期权榜单回调否无参数类型由上下文推断
cb.onFullTick完整逐笔回调否无参数类型由上下文推断
cb.onQuoteBBOBBO 行情回调否无API 中真实存在;当前分派器不按 QuoteData.type 分支,Quote 数据类型的 BASIC 和 BBO 都发送到 onQuote
cb.onAsset资产回调否无参数类型由上下文推断
cb.onPosition持仓回调否无参数类型由上下文推断
cb.onOrder订单状态回调否无参数类型由上下文推断
cb.onTransaction成交明细回调否无参数类型由上下文推断
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

用途

主动断开推送连接并停止自动重连。调用 disconnect() 会同步触发 onDisconnect 回调。

参数、默认值与约束

无参数。

返回

void

示例

pushClient.disconnect();

查询已订阅标的

签名

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

用途

查询客户端内存中记录的行情订阅列表。自动重连成功后,SDK 会使用这些记录重新订阅。

仅按 symbols 记录的普通行情订阅可正确恢复。subscribeMarket 的港股全市场行情订阅和榜单订阅未保存可用于正确恢复的完整 market 参数,断线重连后应显式重新订阅。缓存中的 HK 是市场参数,不是已订阅标的列表。

参数、默认值与约束

无参数。

返回

Map<SubjectType, string[]>

示例

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

查询账户订阅

签名

getAccountSubscriptions(): Map<SubjectType, string>

用途

查询客户端内存中记录的账户推送订阅。自动重连成功后,SDK 会使用这些记录重新订阅。

参数、默认值与约束

无参数。

返回

Map<SubjectType, string>

示例

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

Did this page help you?