首页 > 解决方案 > 通过 javascript 发布 MQTT 消息

问题描述

我正在尝试使用 Paho MQTT js 客户端通过 javascript 发布 MQTT 消息:

gClient = new Paho.Client("192.168.178.34", 9001, "clientId");
gClient.send("mytopic", "myvalue", 1, true);

正如我在另一个 MQTT 客户端中看到的那样,消息实际上已发送。但奇怪的是,QOS 是 0(不是 1)并且消息没有保留。

根据文档https://www.eclipse.org/paho/files/jsdoc/Paho.MQTT.Client.html应该可以工作。为什么不呢?

标签: javascriptmqttpaho

解决方案


首先,QOS 仅在客户端和代理之间,而不是在 2 个客户端之间,因此即使消息在 QOS 1 发布,如果客户端在 QOS 0 订阅,客户端也会看到。

其次,我有 99% 的把握,当消息作为对新订阅的响应的一部分传递时,您只会在另一个客户端中看到保留位设置,例如,如果您发布带有保留位设置的消息,然后订阅一个新的该主题的客户。如果客户端已经连接,那么他们将看不到保留的位设置,因为此时它只是正常的交付。


推荐阅读