Skip to content

心跳与重连

描述应用层心跳机制和断线重连策略,确保客户端在连接中断时能够正确恢复。

应用层心跳

客户端可以定期发送 session.ping,用于确认连接和会话仍可用。

Request:

json
{
  "type": "request",
  "requestId": "req_ping_001",
  "topic": "session.ping",
  "data": {}
}

Reply:

json
{
  "type": "reply",
  "requestId": "req_ping_001",
  "topic": "session.ping",
  "success": true,
  "data": {}
}

心跳频率

建议客户端每 30 秒发送一次 session.ping

如果心跳过于频繁,服务可能返回 session.error

json
{
  "type": "event",
  "topic": "session.error",
  "data": {
    "code": "RATE_LIMITED",
    "message": "Rate limit was exceeded."
  }
}

心跳超时

如果客户端长时间没有任何有效消息,连接可能会被关闭。

客户端应在连接关闭后重新建立连接。

重连规则

  • 连接异常关闭后,客户端可以重新连接
  • 重连前应确认 access token 仍未过期
  • 如果 token 已过期,应重新获取 access token 后再连接
  • 重连应使用指数退避,并加入随机抖动
  • 不要在短时间内无限制重连

状态恢复

WebSocket 不保证客户端断线期间的事件补发。

重连成功后,客户端应根据业务需要重新查询当前状态:

Docs buildVersion v1.2.19-20260602-174859-60
Copyright © 2026 WLTE