Websocket详解
更新中—
websocket是基于tcp
的全双工通信协议。允许服务器主动向客户端推送数据。
只需要一次握手就可以建立持久的连接。
消息格式
文本或二进制
一个消息由消息头和消息体
消息头
消息头包括:
- FIN:1 or 0 表示是 or 不是 一条完整的消息
- Opcode:表示消息类型
- Payload length: 表示消息体长度
- Mask: 表示是否加密
- Masking key:仅在需要加密时出现,用于对消息进行解密
流程:
- 服务器建立ws服务器
- 监听
- 连接开放
ws.onopen
- 连接关闭
ws.onerror
- 接收消息
ws.onmessage
- 连接开放
心跳机制
Ping消息由客户端发送给服务端;Pong消息由服务端发送给客户端,作为响应
如果客户端在一段时间内没有接收到Pong消息,就会关闭连接。