【MQTT协议学习】三、订阅主题Subscribe报文构建
文章目录
SUBSCRIBE - 订阅主题
固定报头
固定报头包含控制报文类型和剩余长度
制报文类型为 82
82 XX
可变报头
可变报头包含客户端标识符,当客户端标识符为10的时候,可变报头报文为
00 0A
此时,我们的报文变为
82 XX 00 0A
有效载荷
有效载荷前两个字节为后面报文长度,跟随着主题、服务质量要求。
比如我们订阅主题为testpublish,QoS0的主题,则
主题名 | testpublish |
---|---|
服务质量要求 | 0x00 |
数据总长度为11个字节主题名+1个字节服务质量,共12个字节,则有效载荷中长度报文为
00 0B
此时总的报文为
82 XX 00 0A 00 0B 74 65 73 74 70 75 62 6C 69 73 68 00
XX后面字节总长度为:16,则XX应该为0X10
此时报文为:
82 10 00 0A 00 0B 74 65 73 74 70 75 62 6C 69 73 68 00
至此,我们构建完了订阅了名为:testpublish,QoS0的主题。
测试
我们使用串口透传方式。进行登录,登录后执行以下过程:
- 不订阅主题,发送testpublish报文"Hello World!"
- 订阅testpublish主题,再发送testpublish报文"Hello Wrold!"