跳到正文
iTick Relay

WebSocket 行情推送 API

不用轮询:订阅标的后,服务端持续把报价、成交和盘口推给你。协议与 iTick 官方一致。

为什么用 WebSocket

消息格式

订阅、心跳与推送
// Subscribe / unsubscribe. types: tick, quote, depth, kline@1
{"ac":"subscribe","params":"AAPL$US,700$HK","types":"quote,tick"}
{"ac":"unsubscribe","params":"AAPL$US","types":"quote"}

// Heartbeat
{"ac":"ping","params":"1731688569840"}

// Pushed message
{"code":1,"data":{"s":"BTCUSDT","r":"BA","ld":83988.54,"v":0.00019,"type":"tick"}}

JavaScript 示例

JavaScript
const ws = new WebSocket("wss://itick.dev/crypto?token=YOUR_API_KEY");

ws.onopen = () => {
  ws.send(JSON.stringify({ ac: "subscribe", params: "BTCUSDT$BA", types: "quote,tick" }));
  // 每 30 秒至少发送一次心跳
  setInterval(() => ws.send(JSON.stringify({ ac: "ping", params: String(Date.now()) })), 25000);
};

ws.onmessage = (event) => console.log(event.data);

支持的市场

连接地址为 wss://itick.dev/{market},market 可选 stock、forex、crypto、indices、future、fund。可用数据以所选套餐为准。

连接与订阅限制

每个 API Key 在每个市场的并发连接数、每个连接可订阅的标的数都由套餐决定,见 定价。免费套餐默认不含 WebSocket。

常见问题

断线了怎么办?

服务端因令牌停用、重置或过期而断开连接时,请在重新获得有效令牌后重连并重新订阅。网络断开同样需要重连后重新订阅。

需要发心跳吗?

需要,建议至少每 30 秒发送一次 ping,超过一分钟没有心跳连接可能被断开。

浏览器里怎么传令牌?

浏览器的 WebSocket 无法设置请求头,把令牌放在连接地址的查询参数 token 中。

订阅实时行情

注册并订阅含 WebSocket 的套餐,开始接收推送。

免费注册