MQTT协议控制报文格式
时间: 2023-10-08 08:12:39 浏览: 59
MQTT协议中的控制报文主要有以下几种格式:
1. 连接请求报文格式
| 字段名 | 长度(字节) | 描述 |
| ----------- | --------- | ---------------------------------------- |
| 固定报头 | 1 | 固定值0x10 |
| 可变报头 | 不定 | 各种协议控制信息,如MQTT协议版本号、客户端ID、遗嘱消息等 |
| 协议名长度 | 2 | 协议名字节长度 |
| 协议名 | 不定 | 协议名 |
| 协议版本号 | 1 | 协议版本号 |
| 连接标志 | 1 | 各种连接标志,如是否清除会话、是否有遗嘱消息等 |
| 保持连接时间长度 | 2 | 保持连接时间长度(单位:秒) |
| 客户端ID长度 | 2 | 客户端ID字节长度 |
| 客户端ID | 不定 | 客户端ID |
2. 订阅请求报文格式
| 字段名 | 长度(字节) | 描述 |
| --------- | --------- | -------------- |
| 固定报头 | 1 | 固定值0x82 |
| 可变报头 | 不定 | 报文标识符、主题过滤器列表 |
| 报文标识符 | 2 | 报文标识符 |
| 主题过滤器列表 | 不定 | 主题过滤器 |
| 服务质量等级列表 | 不定 | 服务质量等级 |
3. 发布消息报文格式
| 字段名 | 长度(字节) | 描述 |
| --------- | --------- | ---------------------------------------- |
| 固定报头 | 1 | 固定值0x30 |
| 可变报头 | 不定 | 主题名、报文标识符等 |
| 主题名长度 | 2 | 主题名字节长度 |
| 主题名 | 不定 | 主题名 |
| 报文标识符 | 2 | 报文标识符(可选) |
| 消息内容 | 不定 | 消息内容 |
4. 心跳请求报文格式
| 字段名 | 长度(字节) | 描述 |
| ----- | --------- | ------------ |
| 固定报头 | 1 | 固定值0xC0 |
| 可变报头 | 1 | 剩余长度为0的标志位 |
以上是MQTT协议主要的控制报文格式,不同的控制报文有不同的用途和字段。在实际应用中,根据需要选择合适的报文进行通信。