实时推送

PushClient 是进程内单例。相同 Tiger ID 同时只能有一个活跃连接;新连接会通过 ConnectionKickout 踢出旧连接。连接前必须依次设置 TigerConfig 和完整的 IApiComposeCallback。

// callback 是 callbacks 页面中的完整 IApiComposeCallback 实现实例
PushClient client = PushClient.GetInstance()
    .Config(config)
    .ApiComposeCallback(callback);

if (!await client.ConnectAsync())
    throw new InvalidOperationException("push connection failed");

uint requestId = client.SubscribeQuote(new HashSet<string> { "AAPL" });

Connect/ConnectAsync 会持续重试底层连接;单次连接等待常量为 5000ms,重试间隔为 2000ms。应用退出时调用 Disconnect()。行情和账户推送分别要求市场数据及账户访问权限;订阅确认通过 SubscribeEnd 异步返回,请求 ID 为 0 表示调用时未连接。

连接意外关闭时客户端会自动重连,但不会记录或恢复已有订阅,断线期间的消息也不会补发。应用应在重新收到 ConnectionAck 后重新订阅,并解析 SubscribeEnd 的 result JSON;只有内部 code == 0 才表示成功。


Did this page help you?