【问题标题】:MQTT Js Last Will Message not getting publishedMQTT Js Last Will 消息未发布
【发布时间】:2023-03-17 23:51:01
【问题描述】:

我有以下代码-->

var last_will = new Paho.MQTT.Message("last message");
last_will.destinationName = "Bridge123";
client = new Paho.MQTT.Client("broker.mqttdashboard.com", Number("8000"), "AX123");
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
client.connect({onSuccess:onConnect} , {willMessage:last_will});

当我断开客户端连接时,我希望将最后的遗嘱消息发送到我创建的主题。我正在使用 Paho 的 mqtt 版本 -3.1 .. Websockets 被创建得很好,但我没有看到最后遗嘱的消息。 ..

有人可以在这里指导吗?

添加更大的图片:

我有一个 Python 脚本 p 收集本地环境中 IOT 设备的当前开/关状态,并通过 mqtt 发布到主题“IOT1”。我不希望 python 脚本始终运行以从 IOT 设备获取状态,因为它使设备过载.. 为了解决这个问题,我需要为“IOT1”主题找到活动客户端,以便我运行或暂停发送请求的线程本地环境中的IOT设备..除了最后的遗嘱消息之外还有其他方法可以知道吗?

【问题讨论】:

    标签: javascript communication mqtt paho iot


    【解决方案1】:

    只有在客户端没有完全断开连接时才会发布最后遗嘱和遗嘱消息。

    如果您优雅地关闭连接,它将不会被发送。

    只有当服务器在超时时间内没有收到消息或ping包时,服务器才会发送消息。

    【讨论】:

      【解决方案2】:

      willMessage 应该是第一个对象的属性。见下面代码sn-p。

      client.connect({onSuccess:onConnect, willMessage:last_will});
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-14
        • 2017-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多