【问题标题】:How to delete multiple retained messages with LWT?如何使用 LWT 删除多条保留消息?
【发布时间】:2016-09-23 15:48:11
【问题描述】:

从文档中我了解到 LWT 可以发送或删除一条消息。但是如果客户端需要多条保留消息,那么在连接丢失的情况下如何清理呢?

【问题讨论】:

    标签: mqtt


    【解决方案1】:

    简短的回答,你不能。

    LWT 只会发送 1 条消息(或发送带有空负载的消息以清除保留的消息)。

    如果您想更改其他保留消息的状态,唯一真正的选择是让单独的客户端运行订阅 LWT 主题,然后清除多个保留消息。

    【讨论】:

      【解决方案2】:

      正如 hardillb 所提到的,MQTT 标准机制是不可能的。不过,一些代理可能有删除多个保留消息的选项。对于 HiveMQ,有一个 RetainedMessageStore 可用,它允许修改事件中保留的消息(例如,当发送 LWT 时)。甚至还有一个允许递归删除保留消息的插件:Github Link

      【讨论】:

        猜你喜欢
        • 2015-01-12
        • 1970-01-01
        • 2022-08-14
        • 1970-01-01
        • 1970-01-01
        • 2015-03-06
        • 1970-01-01
        • 2015-08-09
        • 2016-12-18
        相关资源
        最近更新 更多