js websocket header
时间: 2023-09-02 13:07:50 浏览: 77
js使用websocket
Websocket 协议的 header 由以下几个部分组成:
1. FIN (1 bit):表示这个数据帧是不是一个消息的最后一个数据帧。如果是,为 1,否则为 0。
2. RSV1, RSV2, RSV3 (各占 1 bit):暂时没有被使用,总是设置为 0。
3. Opcode (4 bit):表示数据帧的类型。它有以下几种取值:
- 0x0:表示这个数据帧是一个 Continuation Frame,是上一个数据帧的延续。
- 0x1:表示这个数据帧是一个 Text Frame,包含 UTF-8 编码的文本数据。
- 0x2:表示这个数据帧是一个 Binary Frame,包含二进制数据。
- 0x8:表示这个数据帧是一个 Close Frame,用于关闭连接。
- 0x9:表示这个数据帧是一个 Ping Frame,用于心跳检测。
- 0xA:表示这个数据帧是一个 Pong Frame,用于心跳检测。
4. Mask (1 bit):标识 Payload 是否经过掩码处理。客户端发送给服务端的数据必须经过掩码处理,服务端发送给客户端的数据不能经过掩码处理。
5. Payload length (7 bit 或 7+16 bit 或 7+64 bit):表示 Payload 的长度。如果 Payload length 小于 126,它就是 Payload 的真实长度。如果 Payload length 等于 126,后面的 16 bit 代表 Payload 的长度。如果 Payload length 等于 127,后面的 64 bit 代表 Payload 的长度。
6. Masking-key (32 bit):如果 Mask 为 1,就需要有一个 32 bit 的掩码密钥,用于掩码处理 Payload。
7. Payload data:表示实际的数据内容,长度为 Payload length。如果 Mask 为 1,需要使用掩码密钥对 Payload data 进行掩码处理。
阅读全文