WebSocket 行情推送 API
不用轮询:订阅标的后,服务端持续把报价、成交和盘口推给你。协议与 iTick 官方一致。
为什么用 WebSocket
- 报价变化时才推送,比定时轮询 REST 更及时,也不占用每分钟请求额度。
- 一个连接可以订阅多个标的,同一个标的被多个连接订阅互不影响。
- 与 iTick 官方协议一致,已有的订阅代码只需要换连接地址。
消息格式
// 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 示例
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 的套餐,开始接收推送。
免费注册