MQTT 协议中 PUBLISH 和 PUBACK 介绍
1. PUBLISH 命令
功能
PUBLISH 命令用于从客户端向服务端(或反向)传输一个应用消息。它是 MQTT 协议中用于消息发布的核心命令。
语法
PUBLISH 报文由以下部分组成:
- 固定报头(Fixed Header):包含报文类型(0x03),DUP 标志(是否重复发送),QoS 等级(0, 1, 或 2),RETAIN 标志(是否保留消息),以及剩余长度(Remaining Length,表示可变报头和有效载荷的总长度)。
- 可变报头(Variable Header):包含主题名(Topic Name)和(当 QoS > 0 时)报文标识符(Packet Identifier)。
- 有效载荷(Payload):包含应用消息的实际内容。
参数
- 主题名(Topic Name):UTF-8 编码的字符串,用于标识消息要发布到的主题。
- QoS 等级:
- 0:最多分发一次。
- 1:至少分发一次。
- 2:仅分发一次。
- RETAIN 标志:如果设置为 1,则服务器会保留这个消息,以便它可以被新订阅了该主题的客户端获取。
- 报文标识符(Packet Identifier)(当 QoS > 0 时):用于在 QoS 1 和 QoS 2 的情况下,确保消息的可靠传输和处理。
- 有效载荷:实际要发布的应用消息数据。