目录
3.1 CONNECT - 连接服务器
- 客户端到服务端的TCP/UDP网络连接建立后,客户端发送给服务端的第一条报文必须是 CONNECT 报文。
- 在一个网络连接上,客户端只能发送一次 CONNECT 报文。
- 服务端必须将客户端发送的第二个 CONNECT 报文当作协议违规。
CONNECT报文 - 帧格式:
| 功能 | 字节空间 | |
|---|---|---|
| 固定报头 | MQTT报文类型+保留位 | 1 Byte |
| 剩余长度 | 1 ~ 4 Byte | |
| 可变报头 | 协议名 | 6 Byte |
| 协议级别 | 1 Byte | |
| 连接标志 | 1 Byte | |
| 保持连接时间 | 2 Byte | |
| 有效载荷 | ... ... | ... ... |
3.1.1 CONNECT 固定报头
| Byte - Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Byte 1 | MQTT 报文的类型(1 - CONNECT) | Reserved 保留位 | ||||||
| 1,0x1 - CONNECT | 0x0 | |||||||
| Byte 2~5 | 剩余长度 | |||||||
- CONNECT 的第1个字节为 0x10,剩余长度字段需要根据可变报头和有效载荷的长度来确定。
- 剩余长度字段的计算过程见 2.2.3。
3.1.2 CONNECT 可变报头
CONNECT的可变报头包含四个字段:
- 协议名(Protocol Name)
- 协议级别(Protocol Level)
- 连接标志(Connect Flags)
- 保持连接时间(Keep Alive)
| byte 1 ~ 6 | 协议名 |
|---|---|
| byte 7 | 协议级别 |
| byte 8 | 连接标志 |
| byte 9 ~ 10 | 连接保持时间 |
3.1.2.1 协议名
可变报头中,协议名字段的6个字节是固定的:
| 功能 | 说明 | 值 | |
|---|---|---|---|
| byte 1 | 协议名长度 | 长度 MSB |


1281

被折叠的 条评论
为什么被折叠?



