IoT 物联网 MQTT 5.0 中 Reason Code 详解

admin 2024年1月23日11:45:17评论15 views字数 693阅读2分18秒阅读模式

IoT 物联网 MQTT 5.0 中 Reason Code 详解

01

Reason Code

Reason Code 在 MQTT 中的主要作用是为客户端和服务端提供更详细的反馈信息。比如你可以在 CONNACK 报文中0x86对应着Bad User Name or Password,这样客户端就能够知道是因为用户名/密码错无法正常建立MQTT连接。

在 MQTT 5.0 中,可用的 Reason Code 有 43 个,按规定< 0x80 的 Reason Code 用于表示成功,≥ 0x80 的 Reason Code 则用于表示异常。这样客户端能够更轻松地判断操作是否成功。

MQTT 5.0 中支持 Reason Code 的报文有9种:CONNACK、PUBACK、PUBREC、PUBREL、PUBCOMP、SUBACK、UNSUBACK、DISCONNECT 以及 AUTH。

IoT 物联网 MQTT 5.0 中 Reason Code 详解

Reason Code 在 MQTT 3.1.1 和 5.0 中对比

虽然 Reason Code 已经能够指示大部分的错误原因,但对于开发者或运维人员来说,可能仍然缺少更直观的上下文信息。Reason String 是 MQTT 5.0 对 Reason Code 的一个补充,是为开发者而设计的可读的字符串。

在实际使用中,Reason String 的内容取决于客户端和服务端的具体实现,所以一个实现正确的接收端不应该尝试解析 Reason String 的内容,推荐的使用方式包括但不限于在抛出异常时使用 Reason String,或者将它写入日志。 

Reason String 是一个可选的功能,是否会收到 Reason String 取决于对端是否支持。

02

Reason Code 速查表

原文始发于微信公众号(IoT物联网技术):IoT 物联网 MQTT 5.0 中 Reason Code 详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月23日11:45:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IoT 物联网 MQTT 5.0 中 Reason Code 详解http://cn-sec.com/archives/2420468.html

发表评论

匿名网友 填写信息