写点什么

原因码与 ACK--MQTT 5.0 新特性

作者:EMQ映云科技
  • 2023-03-10
    云南
  • 本文字数:417 字

    阅读完需:约 1 分钟

原因码与ACK--MQTT 5.0新特性

MQTT v3.1.1

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

CONNACK 报文

在 CONNECT 报文中只有 6 种返回码,只有当服务器发回的 CONNACK 报文的返回码为 0 时才表示连接建立成功。

SUBACK 报文

SUBACK 报文有四种返回码,除了返回码 0x80 表示失败,其他返回码都表示订阅成功,3 个值 0,1,2 分别代表订阅接收到的消息的最大 QoS 值。

MQTT v5.0

MQTT v5.0 协议将返回码改名成了原因码,增加了用于表示更多类型的错误的原因码。

下表是原因码列表,分别表示的是原因码的值以及包含原因码的控制报文:

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

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

用户头像

全球领先的开源物联网基础设施软件供应商 2021-06-09 加入

面向 5G 和物联网市场的消息与流处理开源软件公司。

评论

发布
暂无评论
原因码与ACK--MQTT 5.0新特性_物联网_EMQ映云科技_InfoQ写作社区