【问题标题】:How to stop receiving LWT retained message?如何停止接收 LWT 保留消息?
【发布时间】:2015-01-12 02:29:16
【问题描述】:

为了测试,我使用clean sessin = falsesetWill(WILL_TOPIC, WILL_MSG.getBytes(), 1, true); 创建了一个客户端并运行了该应用程序。后来,当我运行应用程序时,我设置了setWill(WILL_TOPIC, WILL_MSG.getBytes(), 1, false);,我收到了之前处理过的LWT 消息。如何停止接收?

【问题讨论】:

    标签: mqtt messagebroker broker paho android-open-accessory


    【解决方案1】:

    您收到的不是这样的 LWT 消息,而是保留的消息。要清除保留消息,请将零长度保留消息发送到同一主题。例如,使用 Paho Python 客户端,您可以:

    client.publish(WILL_TOPIC, payload=None, retain=True)
    

    【讨论】:

    • 您好,您认为如果客户端调用“断开连接”,是否有助于清除保留的“LWT”?
    • 不,除了向同一个主题发布一个空的有效负载之外,没有什么可以清除保留的消息
    【解决方案2】:

    您可以发送带有“CleanSession=false”和“Will=true”的 CONNECT 消息,并发送一个空的 WILLTOPIC 消息

    查看this 第 6.3 节

    【讨论】:

    • 您链接了与标准 MQTT 不同的 MQTT-SN 规范,因此这对 OP 没有太大帮助。但是,如果是 MQTT-SN,这将删除 WILL :)
    • 如何使用 paho js 客户端进行此操作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多