遗嘱消息是 MQTT 为那些可能出现 意外断线 的设备提供的将 遗嘱 优雅地发送给第三方的能力。意外断线包括但不限于:
- 因网络故障或网络波动,设备在保持连接周期内未能通讯,连接被服务端关闭
- 设备意外掉电
- 设备尝试进行不被允许的操作而被服务端关闭连接,例如订阅自身权限以外的主题等
遗嘱消息可以看作是一个简化版的 PUBLISH 消息,他也包含 Topic, Payload, QoS 等字段。遗嘱消息会在设备与服务端连接时,通过 CONNECT 报文指定,然后在设备意外断线时由服务端将该遗嘱消息发布到连接时指定的遗嘱主题(Will Topic)上。这也意味着服务端必须在回复 CONNACK 之前完成遗嘱消息的存储,以确保之后任一时刻发生意外断线的情况,服务端都能保证遗嘱消息被发布。
以下为遗嘱消息在 MQTT 5.0 和 MQTT 3.1 & 3.1.1 的差异:
| MQTT 5.0 | MQTT 3.1 & 3.1.1 | |
|---|---|---|
| Will Retain | Yes | Yes |
| Will QoS | Yes | Yes |
| Will Flag | Yes | Yes |
| W |

最低0.47元/天 解锁文章
265

被折叠的 条评论
为什么被折叠?



