mqtt的协议格式

时间:2023-05-06 23:05:15 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
mqtt的协议格式



MQTTMessage Queuing Telemetry Transport)是一种轻量级的消息协议,在物联网应用中广泛使用。它采用发布/订阅模式,通过TCP/IP协议进行通信,具有低带宽、低功耗、可靠性高等特点。下面将介绍MQTT的协议格式。

MQTT消息格式分为固定头部、可选的可变头部和消息体三部分。其中固定头部和可变头部一共占用了2个字节,用来表示消息的类型、QoS等信息;消息体的长度和内容取决于不同类型的消息,可以是任意长度。

固定头部包含以下几个字段:

1. Message Type1 byte: 消息类型,表示当前消息的类型,包括ConnectPublishDisconnect等。

2. Dup flag1 bit: 重复发送标志,如果QoS等级大于0,表示这是一条重发的消息。

3. QoS Level2 bits: 服务质量等级,可取012三种,表示消息的可靠性级别。




4. Retain1 bit: 保留标志,如果为1,则表示此消息应该保存并传递给新的订阅者。

5. Remaining Length(可变长度): 后续消息的长度(除了固定头部以外的剩余部分),用于表示后续消息的总长度。

可变头部包含以下几个字段,根据不同消息类型的不同可以为空或者具有不同的长度:

1. Protocol name2 bytes): 表示协议的名字和版本号,固定为MQTT

2. Protocol version1 byte): 表示协议的版本号,当前为4

3. Connect flags1 byte: 表示连接的标志位,包括Will flag(遗嘱标志)、User name flag(用户名标志)、Password flag(密码标志)和保留标志。

4. Keep alive2 bytes): 表示连接的持续时间,在此时间内,如果没有交换数据,则连接会自动断开。

5. Message ID2 bytes):仅用于QoS 12级的消息,用于标识


本文来源:https://www.wddqw.com/doc/d88594910608763231126edb6f1aff00bed570c3.html