2-1-3 消息保留 和 最后遗嘱

让我们想象一下,我们需要建立一个模块,每小时将温度和湿度发送到服务器,并且必须使用电池运行。由于数据不经常发送并且使用电池运行,因此模块将在发送之间进入深度睡眠状态。在某个时间点,如果每五分钟请求一次数据。除了使用消息保留(retain message)之外,没有办法告诉模块更改其更新时间。从Web应用程序中,将发送保留消息,并且代理将在模块第一次发送时发送该消息。通过这种方式,当模块唤醒并订阅服务器的配置主题上时,代理将提供新的更新间隔。该消息由模块解析,从现在开始将唤醒,并且每五分钟而不是每小时发送一次。

当你有一个应用程序的用例依赖于传感器发送的一些关键值,然后您可以通过使用最后遗嘱( last will)来检测客户端何时停止传输或断电。当客户端连接到代理时,它还将指定最后一个遗嘱主题及其最后一条消息。例如,如果客户端出现网络故障或者没有响应 存活信息(Keep Alive. messages),那么代理将发送给订阅了最后一个主题的所有客户端,即来自该失去连接的客户端的消息。通常,Last Will消息与Retain Message选项一起使用。

保留消息更详细的说明:https://www.jianshu.com/p/701ef52c62fd

猜你喜欢

转载自blog.csdn.net/countofdane/article/details/86653980