WebSocket服务概述
WebSocket服务类型
提供三种类型的WebSocket连接:
- 用户WebSocket(/v3/wss)
- 应用WebSocket(/v3/wss/:appId)
- 硬件WebSocket(/v3/wss/:hdId)
消息格式
所有WebSocket通信采用JSON-RPC 2.0协议格式:请求格式
响应格式
通知格式
错误格式
连接生命周期
-
建立连接
- 客户端发起WebSocket连接
- 服务器验证认证信息
- 连接成功后进入就绪状态
-
保持连接
- 客户端定期发送心跳包
- 服务器响应心跳确认
- 超时未收到心跳则断开连接
-
断开连接
- 正常断开:客户端发送关闭帧
- 异常断开:网络故障或超时
- 服务器清理相关资源
建议实现自动重连机制,在连接断开后尝试重新建立连接。
错误处理
错误码说明
| 错误码 | 说明 |
|---|---|
| -32700 | 解析错误 |
| -32600 | 无效请求 |
| -32601 | 方法不存在 |
| -32602 | 无效参数 |
| -32603 | 内部错误 |
| -32000 | 服务器错误 |
| -32001 | 认证失败 |
| -32002 | 权限不足 |
最佳实践
-
连接管理
- 实现指数退避的重连策略
- 保持合理的心跳间隔(推荐30秒)
- 优雅处理断开连接
-
消息处理
- 实现消息队列和重试机制
- 处理消息顺序和幂等性
- 合理设置超时时间
-
错误处理
- 实现错误重试策略
- 记录详细的错误日志
- 向用户提供友好的错误提示