问题标签 [paho]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
proxy - 使用 Paho Java 客户端通过受限网络连接到外部代理
我的客户端使用的是受限网络,即它位于防火墙后面,只允许对 443 端口的请求。所以它不允许客户端连接到我的 mqtt 代理正在运行的任何其他端口。
有什么方法可以使用 Paho java 客户端连接到在 12000 等随机端口上运行的目标代理,并具有此类网络限制?
我想我将不得不启动一个代理,它将 mqtt 连接请求路由到目标 ip 和端口,但我不知道该怎么做。
请帮助我,让我知道如何实现这一目标
java - Paho MQTT cleanSession 设置为 false 但未接收消息
我正在为一个项目测试MQTT。当客户端连接时,我还能够接收关于我的客户端订阅的主题的消息。我已将 QoS 设置为 1 并将 cleanSession 设置为 false。但是当我的客户端再次连接时,我无法接收发送到订阅主题的消息。在我的应用程序中,几乎所有工作都是由帮助服务完成的。
这是我的代码
AndroidManifest.xml
MainActivity.java
MqttHelperService.java
我什至检查了这个链接将清除会话标志设置为 FALSE,我错过了发布的值,但在我的代码中找不到错误
node.js - mqtt mosca pahojs WebSocket 连接到 'ws://localhost:1884/mqtt' 失败/超时
经纪人
客户端.html
我经营经纪人
比我通过网络服务器调用client.html
过了一会儿我得到
Firefox 无法与位于 ws://localhost:1884/mqtt 的服务器建立连接。this.socket = new WebSocket(wsurl, ["mqtt"]);
Chrome:与“ws://localhost:1884/mqtt”的 WebSocket 连接失败:WebSocket 打开握手超时
我不知道该转向哪个方向:(
你能帮我吗 ?
java - 为什么 MQTT 在 QoS = 1 时会如此缓慢?
我正在尝试编写一个通过 WiFi 和 MQTT 协议控制一群机器人的应用程序。我已经进行了一些测试来衡量它对于我的应用程序是否足够快。我想要一个平均不超过 25-30 毫秒的控制循环(从 PC 到机器人并返回的消息)。
我使用 Paho Java 客户端编写了一个应用程序,它在两台机器上运行。当收到关于 topic1 的消息时,它会发布到 topic2。Topic2 由第二台机器订阅,然后发布到 topic1。
当所有发布和订阅都使用 QoS 0 进行时,循环时间平均约为 12 毫秒。但是,我想使用 QoS 1 来保证发送给机器人的命令将始终到达目的地。当我测试循环时间时,它平均在 250 毫秒左右。
是什么导致时间增加这么多?据我了解,如果没有传输错误,则交换的数据包数量会随着 QoS1 翻倍(每条消息都有从代理发送到客户端的 PUBACK,请参阅http://www.hivemq.com/mqtt-essentials-part-6 -mqtt-服务质量级别/)。
我可以以某种方式减少这个时间吗?我尝试过 Mosquitto 和 Apache Apollo 代理,两者都复制了相同的结果。
编辑:
我稍微改变了一个测试程序。现在,我有两个 mqtt 客户端实例在同一台机器上运行。一是发布者,二是订阅者。发布者以 10 毫秒的间隔发送 1000 条消息,如下所示:
订阅者只是等待消息并测量时间:
Broker(具有默认配置的 mosquitto)在同一本地网络中的另一台机器上运行。我所取得的成果比以前更加离奇。现在,一条 QoS 为 1 的消息到达订阅者大约需要 8-9 毫秒。使用 QoS 2 大约为 20 毫秒。但是,使用 QoS 0,我得到平均值。时间从 100 毫秒到甚至 250 毫秒!我猜这个错误在我的测试方法中的某个地方,但我看不到在哪里。
java - QoS1 与 QoS2 消息 - 在 Java 中使用 Paho MQTT 客户端处理它的区别
参考这篇文章,我想我知道 QoS1 和 QoS2 消息之间的区别,但我不知道将它们作为 Paho MQTT 客户端处理的区别。
想象一下,我订阅了这样的主题:
然后我发布这样的消息:
目前我正在使用 MqttCallback 接口来处理到达订阅者的消息。
有一种方法可以覆盖:
在 MqttMessage 我们可以找到一个 isDuplicate() 方法,但是我如何确定返回 true 的 mqttMessage 不是我的订阅者收到的第一条消息?
我对找到一个显示如何处理 QoS1 的解决方案非常感兴趣,但是每一个能澄清这里任何事情的答案都将不胜感激。
来自克拉科夫的问候!
ios - 用于 ios 的 MQTT 客户端
我正在为 IOS 开发一个应用程序并且需要 MQTT 客户端,我搜索并有类似的问题询问哪个客户端用于 iOS,paho c 客户端似乎是流行的选择,但有些人建议苹果不批准 c 客户端沟通的东西。我有 2 个问题。
1)这是iOS最可靠/成熟/完整的MQTT客户端库。
2)它是否被苹果批准,他们会接受使用它的应用程序。
如果它们可用,我会更喜欢原生的 Objective-C 库。
debian - Paho-mqtt.client 可以连接到 digital-ocean mqtt 服务器但不能订阅
请帮我解决一下这个。我在这上面花了两天时间,但没有成功。
我正在使用 Paho-Mqtt python 客户端示例。我的 digitalocean debian 服务器上也有 HiveMq mqtt 服务器。如果我在笔记本电脑或 linux Debian 机器上运行,python 中的客户端示例代码可以连接并订阅 digitalocean 服务器。但。这是但是。当我在 digitalocean 服务器(hivemq mqtt 服务器所在的位置)上运行客户端时,它只能连接而不能订阅!我同时使用了 localhost 和服务器 IP,但仍然没有运气。
然而,在 digitalocean 服务器(以及 hivemq mqtt 服务器)上运行的相同客户端代码可以成功连接和订阅外部服务器,例如 m2m.eclipse.org。
我怎么知道它不是订阅而是连接?好吧,它在连接回调时返回 RC:0,但在订阅回调时不返回任何内容。(它应该返回“订阅:1”等)
结论:当 Clinet 与服务器在同一台机器上运行时,它可以连接但不能订阅。
python - 使用 Paho Mqtt 客户端发布和订阅
在我的树莓派上安装 paho mqtt 客户端并将我的 android 应用程序和 arduino 与我的代理连接后。我希望在收到来自应用程序或 arduino 客户端的消息后将此消息重新发布到此客户端,例如,如果我在收到“OFF”后收到“ON”,下一次发布将是“ON”“OFF”“ON”“OFF” “......或者我需要只是“开”或“关”
java - Eclipse Paho Mqtt 客户端是否会保留所有已发布的消息,直到它们被 QoS-2 下的代理确认交付?
默认的 PAHO MQTT 实现是否会保留所有正在推送的消息,直到它们的交付在 QoS 2 中得到明确确认?或者如果不是,我们自己怎么可能实现呢?
更新 自 paho android 服务版本 1.1.0 以来,实现了自动重新连接和离线缓冲功能。欲了解更多信息:https ://www.eclipse.org/paho/clients/android/
java - 尝试使用 Paho 客户端 MqttCallback 在 messageArrived() 中发布
我正在尝试发布对传入消息的响应 messageArrived(...)
。但是发布挂起和下一行: logOutgoingMessage(topic, message)
永远不会被调用...最后我遇到了死锁并且客户端断开连接。
这是我的代码: