2017.09.28 MQTT部分总结

看了关于MQTT-3.1.1-CN 总结一下

一 、报文格式

2017.09.28 MQTT部分总结

(1)创建连接是的固定包头 0x10

2017.09.28 MQTT部分总结

(2)确定连接的固定包头 0x20 0x02

2017.09.28 MQTT部分总结

(3)发布消息 固定包头 0x3X

2017.09.28 MQTT部分总结

(4)订阅主题固定包头 0X82

2017.09.28 MQTT部分总结

(5)取消订阅 固定包头 0XA2

2017.09.28 MQTT部分总结

(6)心跳请求包 固定包头 0XC0 0X00

2017.09.28 MQTT部分总结

(7)心跳响应 固定包头 0XD0 0X00

2017.09.28 MQTT部分总结

(8)断开连接 固定包头 0XE0 0X00

2017.09.28 MQTT部分总结

二 、

(1)每个 MQTT 控制报文都包含一个固定报头。 图例 2.2 -固定报头的格式 描述了固定报头的格式。

2017.09.28 MQTT部分总结
(2)
2017.09.28 MQTT部分总结2017.09.28 MQTT部分总结

(3)
2017.09.28 MQTT部分总结

(4)
2017.09.28 MQTT部分总结
**剩余长度表示为除了固定包头字节 与 表示固定长度的字节 剩余的所以长度。
此处需要注明:
(1)如果剩余长度为 0x38 = 0011 1000 = 56 ;
最高位为0 ,表明后面没有在表示长度的字节了,则剩余长度就是56 ,总长度 为56 +1+1 = 58 ;
(2)如果剩余长度 0xb7 0x08 = 1011 0111 0000 1000 ;
第一个字节最高位为1 表示后面跟的还是 表示的长度,第二个字节最高位为0 后面没有长度了。
剩余长度= (011 0111)+ (0000 1000) * 128 = 55 + 8 * 128 = 1079 ;
总长度 = 1079+1+2 = 1082;**

2017.09.28 MQTT部分总结