美文网首页
mqtt协议之保留消息

mqtt协议之保留消息

作者: 大风过岗 | 来源:发表于2021-01-05 18:39 被阅读0次

    保留消息

    1、保留消息的使用场景

    以设备升级为例,假如我们要发布一个升级任务,以使得所有的设备都能在本次升级任务中完成升级。但是,当前却有一些设备不在线(由于网络原因等),这样的话,这些设备当前就无法接收到我们发送的消息。那么,我们想让这些设备在重新上线的时候,立即收到我之前发布的升级消息,并执行升级动作,这个时候,就需要用到保留消息了。

    (这个有点类似于:电话留言,别人给你打电话的时候,你不在家,然后他就给你电话留言,以便于你在回到家之后,还能收到他的消息)

    协议中的原文

    ```
    Retained messages are useful where publishers send state messages on an irregular basis. A
    new subscriber will receive the most recent state
    
    ```
    

    2、保留消息的存储时间和数量限制

    一个主题下面只能有一个保留消息,后来的保留消息会把现存的保留消息替换掉。
    

    3、保留消息的移除
    保留消息要么是被新的保留消息所替换,要么是被客户端主动移除。

    协议中的原文

    ```
    Retained messages do not form part of the Session state in the Server. The Server SHOULD retain such
    messages until deleted by a Client
    ```
    

    mqtt协议中关于保留消息的定义

    image.png image.png

    具体实现中关于保留消息的处理

    EMQ对于保留消息的处理

    image.png

    参考文献

    1. mqtt协议文档
    2. EMQ的保留消息

    相关文章

      网友评论

          本文标题:mqtt协议之保留消息

          本文链接:https://www.haomeiwen.com/subject/klmwoktx.html