Mqtt 如何使用LWT删除多个保留的邮件?

Mqtt 如何使用LWT删除多个保留的邮件?,mqtt,Mqtt,从文档中我了解到LWT可以发送或删除一条消息。但是,如果客户端需要保留多条消息,那么当连接丢失时,如何清理这些消息呢?简短回答,您不能 LWT将只发送1条消息(或发送一条负载为空的消息以清除保留的消息) 如果您想更改其他保留消息的状态,唯一的实际选择是让一个单独的客户端运行对LWT主题的订阅,然后它会清除多个保留消息。简短回答,您不能 LWT将只发送1条消息(或发送一条负载为空的消息以清除保留的消息) 如果要更改其他保留消息的状态,唯一的实际选择是让一个单独的客户端运行订阅LWT主题,然后清除多

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

简短回答,您不能

LWT将只发送1条消息(或发送一条负载为空的消息以清除保留的消息)


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

简短回答,您不能

LWT将只发送1条消息(或发送一条负载为空的消息以清除保留的消息)


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

如hardillb所述,使用MQTT标准机制是不可能的。不过,有些代理可能有删除多个保留消息的选项。对于HiveMQ,有一个允许在事件(例如,当发送LWT时)上修改保留消息的可用配置。甚至有一个插件允许递归删除保留的消息:

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