IoT 物联网 MQTT 5.0 中 Reason Code 详解

本文介绍了ReasonCode在MQTT协议中的重要性,特别是在MQTT5.0版本中,它提供了43个代码以指示连接和消息处理的成功或异常。ReasonString作为补充,提供了更直观的上下文信息,尽管它是可选的。
摘要由CSDN通过智能技术生成

039eeb822f7e21620abd6f8a9b5b36c2.jpeg

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。

5accf5a9c05cfedf5513c6503ec539fb.png

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 速查表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值