MQTT协议控制报文格式
时间: 2023-10-08 11:10:39 浏览: 43
MQTT协议的控制报文格式如下:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|--------|--------|--------|--------|--------|--------|--------|--------|
| 控制报文类型 | 标志位 | 剩余长度(可变) |
控制报文类型占用 4 个 bits,标志位占用 4 个 bits,剩余长度占用可变长度,最多可占用 4 个字节。
MQTT协议定义了多种控制报文类型,每种类型的报文格式不同,具体如下:
- CONNECT:MQTT客户端连接到MQTT服务器时发送的报文,包含客户端ID、用户名、密码等信息。
- CONNACK:MQTT服务器响应CONNECT报文的报文,包含连接成功或失败的信息。
- PUBLISH:MQTT客户端发布消息时发送的报文,包含消息主题、消息内容等信息。
- PUBACK:MQTT服务器响应PUBLISH报文的报文,确认收到了PUBLISH报文。
- PUBREC:MQTT服务器在收到QoS为1的PUBLISH报文后,向MQTT客户端发送的报文,表示已经收到PUBLISH报文。
- PUBREL:MQTT客户端收到PUBREC报文后发送的报文,表示确认收到了PUBLISH报文。
- PUBCOMP:MQTT服务器收到PUBREL报文后发送的报文,表示确认收到了PUBREC报文。
- SUBSCRIBE:MQTT客户端订阅主题时发送的报文,包含主题名称和QoS等级。
- SUBACK:MQTT服务器响应SUBSCRIBE报文的报文,包含订阅成功或失败的信息。
- UNSUBSCRIBE:MQTT客户端取消订阅主题时发送的报文,包含主题名称。
- UNSUBACK:MQTT服务器响应UNSUBSCRIBE报文的报文,确认取消了订阅。
- PINGREQ:MQTT客户端发送给MQTT服务器的心跳包。
- PINGRESP:MQTT服务器响应PINGREQ报文的报文。
- DISCONNECT:MQTT客户端断开与MQTT服务器的连接时发送的报文。