MQTT协议学习笔记(一)

MQTT协议学习笔记(一)

MQTT报文构建

报文简介

MQTT总共有Figure 1中描述的14类的报文,报文格式统一为 = 固定报头 + 可变报头 + 负载
MQTT协议学习笔记(一) Figure 1

固定报头

MQTT协议学习笔记(一)Figure 2
固定报头的Byte1,低四位都是保留位默认为0,高四位的值是Figure 1中的值(注意要以hex格式表示),例如CONNECT的固定报头Byte1为 10,DISCONNECT报头Byte1为为 E0 。

剩余长度:剩余长度表示的是可变报头 + 负载的长度,最大由4个字节表示,最小由1个字节表示,计算方法如下图表示
MQTT协议学习笔记(一)
例如某报文的剩余长度为128,128 > 127,那么就由两个字节表示,高字节的低7位 = 128 % 128 = 0;高字节的最高位置1, 低字节 = 128 / 128 = 1;所以剩余长度表示为80 01;

所以发送CONNECT报文,剩余长度为128的固定报头表示为 10 80 01;