Skip to content 🖋️ websocket
1. 连接过程
1) TCP 3 次握手
2) websocket 2 次握手
- Client 发送 request 通知 升级协议,升级为 websocket,同时携带 随机生成的 base64 码
- Server 回复 response,表示支持 升级协议,同时携带 基于 Client 发送的 base64 码,通过某种公开的算法生成另一段字符串
- Client 根据 response 的 base64 码和自己通过某种公开的算法生成的字符串进行 匹配,匹配成功,则说明 websocket 建立成功
3) 传输 websocket 格式 message
2. websocket 消息格式
opcode 4 bit
payload 长度 7 | 16 | 64 bit
- 真正传输的数据长度,单位为 字节
- 由于有多种 payload 长度,因此 优先读取
7
bit, - 若在 [0, 125] 区间,则为全部长度;
- 若为 126,需要读取后
16
位数据,表示长度为 [126, 65535] - 若为 127,需要读取后
64
位数据,为其实际长度,数据级别能够达到 TB 级别
payload data
- 真正传输的数据内容,根据 payload 长度截取指定长度
3. 应用场景
- 全双工
- 适用于 Server & Client 频繁交互 的场景