Websocket 简介#
WebSocket是 HTML5 一种新的协议(Protocol)。它实现了用户端与服务器全双工通信, 使得数据可以快速地双向传播。通过一次简单的握手就可以建立用户端和服务器连接, 服务器根据业务规则可以主动推送信息给用户端。其优点如下:
- 用户端和服务器进行数据传输时,请求头信息比较小,大概2个字节。
- 用户端和服务器皆可以主动地发送数据给对方。
- 不需要多次创建 TCP 请求和销毁,节约宽带和服务器的资源。
连接#
连接限制:3 次/秒 (基于IP)
当订阅私有频道时,使用私有服务的地址
请求限制
每个连接 对于 订阅/取消订阅/登录 请求的总次数限制为 480 次/小时 如果出现网络问题,系统会自动断开连接 如果连接成功后 30s 未订阅或订阅后 30s 内服务器未向用户推送数据,系统会自动断开连接
为了保持连接有效且稳定,建议您进行以下操作:
- 每次接收到消息后,用户设置一个定时器,定时N秒,N 小于 30。
- 如果定时器被触发(N 秒内没有收到新消息),发送字符串 'ping'。
- 期待一个文字字符串 'pong' 作为回应。如果在 N 秒内未收到,请发出错误或重新连接。
通知#
WebSocket有一种消息类型(event=notice)。 用户会在如下场景收到此类信息:
- Websocket服务升级断线 在推送服务升级前30秒会推送信息,告知用户WebSocket服务即将升级。用户可以重新建立新的连接避免由于断线造成的影响。 响应示例
{
"event": "notice",
"code": "64008",
"msg": "The connection will soon be closed for a service upgrade. Please reconnect.",
"connId": "a4d3ae55"
}