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 报文在有效载荷中包含了一张原因码的列表。