javascript - 通过 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它应该可以工作。为什么不呢?
解决方案
首先,QOS 仅在客户端和代理之间,而不是在 2 个客户端之间,因此即使消息在 QOS 1 发布,如果客户端在 QOS 0 订阅,客户端也会看到。
其次,我有 99% 的把握,当消息作为对新订阅的响应的一部分传递时,您只会在另一个客户端中看到保留位设置,例如,如果您发布带有保留位设置的消息,然后订阅一个新的该主题的客户。如果客户端已经连接,那么他们将看不到保留的位设置,因为此时它只是正常的交付。
推荐阅读
- java - 带方法的猪翻译器
- javascript - 更新状态在方法的返回语句中没有用
- docker - 通过在 k8s 中的主 pod 上执行 exec 来提交作业
- java - 需要帮助将整数依赖方法转换为使用 BigInteger
- ios - Swift JSONDecoder 可选解包
- r - 如何编写一个 for 循环来创建 50 个不同点之间的欧几里得距离矩阵?R
- dotnetnuke - 如何在 2SXC 中强制内容编辑通过 ADAM 上传图片?
- css - 如何正确地将样式应用于 SVG 类?
- random - 是否可以在 TI-Basic 中制作真正的随机数生成器?
- powershell - 在 jenkins 文件中编写 Powershell 或直接在 jenkins 中编写