MQTT 5.0 新特性 |(二) 原因码与 ACK

430 阅读1分钟

MQTT v3.1.1

MQTT v3.1.1 协议只有 10 种返回码,这些返回码所能表示的含义很少,且相同的返回码的值在不同的报文中可以有不同的含义。

MQTT v5.0

MQTT v5.0 协议将返回码改名成了原因码,增加了用于表示更多类型的错误的原因码。 下表是原因码列表,分别表示的是原因码的值以及包含原因码的控制报文:

原因码是用来表明操作结果的一个单字节无符号值,小于 0x80 的原因码表明操作的结果是成功的,正常情况下,操作成功返回的原因码值为 0。 如果返回的原因码大于等于 0x80,就说明操作失败了。

CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, DISCONNECT 和 AUTH 控制报文的原因码存在可变报头中。而 SUBACK 和 UNSUBACK 报文在有效载荷中包含了一张原因码的列表。