如何使用LWT删除多个保留的消息?

时间:2016-09-22 21:48:45

标签: mqtt

从文档中我已经了解LWT可以发送或删除一条消息。但是,如果客户端需要有多个保留的消息,那么在连接丢失时如何清除它们呢?

2 个答案:

答案 0 :(得分:1)

简短回答,你不能。

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

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

答案 1 :(得分:1)

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