MQTT协议的固定报文头由两个部分组成,第一部分是报文的控制类型与标识,占据1个字节;第二部分是报文的剩余长度,占据1~4个字节。
一、控制报文类型与标识
控制标识共占一个字节,位于MQTT报文的第1个字节。其中高4位是控制报文类型
,低4位是控制标识
,如下。
控制报文类型
共有表格中这些取值。
控制标识
共有下面表格中这些取值。
二、 报文的剩余长度
报文的剩余长度
用来表示剩下的报文占据字节大小,不含控制报文类型和标识
和报文剩余长度
本身。它的长度是可变的,范围是1~4个字节,采用大端序,其中前一个字节的最高位(第8位)置位用来表示是否还有剩余的字节,0表示没有剩余字节。
比如:
报文剩余长度为0x7F,二进制为0111 1111b,最高位为0表示报文剩余长度到此为止了。
报文剩余长度为0x80, 0x0,二进制位1000 0000b, 0000 0000b,最高位为1表示后面还有用来表示剩余长度的字节。而后面的字节为0000 0000b,最高位为0说明后面没有用来表示剩余长度的字节。
所以,报文剩余长度最大值为0xFF 0xFF 0xFF 0x7F,即268,435,455。