跳转到主要内容
WebSocket 连接不会永久保持打开状态,服务端需要依赖心跳机制来判断连接是否仍活跃。即使你订阅的数据产品长时间没有新的业务推送(比如订阅了某场还没开始的比赛的比分更新),只要心跳正常,连接就不会被服务端回收关闭。 若约 60 秒内未收到心跳相关信号,服务端会关闭连接并推送:
心跳超时示例

3.1 应用层心跳(推荐)

建议每 30 秒发送一次,这个频率给了充足的安全余量(心跳超时阈值是 60 秒),即便个别心跳因网络抖动丢失一次,也不至于触发超时断连。 请求字段
发送心跳
发送心跳后不需要等待任何响应(服务端不返回 ack),只要连接没有被关闭,就说明心跳生效了。

3.2 其他方式

除了应用层心跳,还有两种方式可以刷新计时,但都不能作为主力方案独立使用:
无业务推送的长连接仍需主动发 code: 20010