0

我有以下代码-->

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设备..除了最后一条消息之外还有其他方法可以知道吗?

4

2 回答 2

2

仅当客户端未完全断开连接时,才会发布最后遗嘱和遗嘱消息。

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

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

于 2014-12-25T21:31:27.613 回答
0

willMessage 应该是第一个对象的属性。请参见下面的代码片段。

client.connect({onSuccess:onConnect, willMessage:last_will});
于 2017-09-12T14:42:22.493 回答