MQTT协议报文包括固定报头(Fixed header)、可变报头(Variable header)、负载(Payload)三个部分。
-
固定报头(Fixed header):位于所有报文的最前面,是每个报文都具备的通用部分,用来标识和控制报文,包括以下部分:
- 报文类型:通过类型字段确定报文的类型,如CONNECT、PUBLISH、SUBSCRIBE等。
- 标志位:标志位字段控制报文的某些行为,如是否持久化会话、是否需要确认等。
- 剩余长度:剩余长度字段指明了后续可变报头和负载的总长度。
-
可变报头(Variable header):位于固定报头和负载之间,是某些特定报文具备的额外头部信息,包括以下部分:
- 协议名:标识使用的MQTT协议名称,一般为"MQTT"。
- 协议级别:标识MQTT协议的版本,如3.1.1、4.x等。
- 连接标志:连接标志字节包含一些用于指定MQTT连接行为的参数,如是否为干净会话、是否保存会话信息等。
-
负载(Payload):位于可变报头之后,是MQTT协议的具体消息内容,可以是发布的信息、订阅的主题等。
在MQTT协议中,每个控制报文都有其特定的可变报头和负载格式,以实现不同的功能和操作。例如,CONNECT报文用于建立客户端和服务端的连接,其可变报头中包含协议名、协议级别、连接标志等信息,负载部分则包含客户端的连接参数等。其他类型的控制报文如PUBLISH、SUBSCRIBE等也有其特定的可变报头和负载格式。
畅联AIoT开放云平台(www.24hlink.cn)由杭州美畅物联技术有限公司精心打造,不仅能够接入视频,也可以接入、管理各种IoT设备、工业现场设备,在AIoT开发领域能给合作伙伴带来难以置信的降本增效价值。