MQTT协议学习笔记(一)
MQTT协议学习笔记(一)
MQTT报文构建
报文简介
MQTT总共有Figure 1中描述的14类的报文,报文格式统一为 = 固定报头 + 可变报头 + 负载
Figure 1
固定报头
Figure 2
固定报头的Byte1,低四位都是保留位默认为0,高四位的值是Figure 1中的值(注意要以hex格式表示),例如CONNECT的固定报头Byte1为 10,DISCONNECT报头Byte1为为 E0 。
剩余长度:剩余长度表示的是可变报头 + 负载的长度,最大由4个字节表示,最小由1个字节表示,计算方法如下图表示
例如某报文的剩余长度为128,128 > 127,那么就由两个字节表示,高字节的低7位 = 128 % 128 = 0;高字节的最高位置1, 低字节 = 128 / 128 = 1;所以剩余长度表示为80 01;
所以发送CONNECT报文,剩余长度为128的固定报头表示为 10 80 01;