mqtt的协议格式 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,在物联网应用中广泛使用。它采用发布/订阅模式,通过TCP/IP协议进行通信,具有低带宽、低功耗、可靠性高等特点。下面将介绍MQTT的协议格式。 MQTT消息格式分为固定头部、可选的可变头部和消息体三部分。其中固定头部和可变头部一共占用了2个字节,用来表示消息的类型、QoS等信息;消息体的长度和内容取决于不同类型的消息,可以是任意长度。 固定头部包含以下几个字段: 1. Message Type(1 byte): 消息类型,表示当前消息的类型,包括Connect、Publish、Disconnect等。 2. Dup flag(1 bit): 重复发送标志,如果QoS等级大于0,表示这是一条重发的消息。 3. QoS Level(2 bits): 服务质量等级,可取0、1、2三种,表示消息的可靠性级别。 4. Retain(1 bit): 保留标志,如果为1,则表示此消息应该保存并传递给新的订阅者。 5. Remaining Length(可变长度): 后续消息的长度(除了固定头部以外的剩余部分),用于表示后续消息的总长度。 可变头部包含以下几个字段,根据不同消息类型的不同可以为空或者具有不同的长度: 1. Protocol name(2 bytes): 表示协议的名字和版本号,固定为MQTT 2. Protocol version(1 byte): 表示协议的版本号,当前为4。 3. Connect flags(1 byte): 表示连接的标志位,包括Will flag(遗嘱标志)、User name flag(用户名标志)、Password flag(密码标志)和保留标志。 4. Keep alive(2 bytes): 表示连接的持续时间,在此时间内,如果没有交换数据,则连接会自动断开。 5. Message ID(2 bytes):仅用于QoS 1和2级的消息,用于标识 本文来源:https://www.wddqw.com/doc/d88594910608763231126edb6f1aff00bed570c3.html