问题标签 [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.

0 投票
1 回答
1702 浏览

java - 使用 MQTT (paho) + activeMQ 接收消息的正确方法是什么?

我有一个 Java Swing 应用程序,它使用带有主题和队列的 activeMQ 5.9.1。

现在,我的意图是将那个摇摆应用程序迁移到 Web,所以我正在使用 activeMQ + MQTT (paho) javascript 库进行一些证明。

我在 activemq.xml 中启用了它:

我已经使用 MQTT (paho - http://eclipse.org/paho/clients/js/ ) 实现了一些示例来收听一些主题。

正确接收到对主题的响应,但恢复的消息是 Java 字符串对象引用:

如果java应用程序直接写在activeMQ主题上,任何人都知道接收友好消息的正确方法吗?

0 投票
4 回答
9671 浏览

java - ActiveMQ 中是否支持 MQTT 队列?

我是新手,正在学习这个协议。在阅读有关 MQTT 的 wiki 时。第一行“MQTT[1] 是基于发布-订阅的“轻量级”消息传递协议,用于 TCP/IP 协议之上。”

这是否意味着 MQTT 仅支持 Topic 而不支持或使用队列?

因为,即使我使用可用的客户端 API(fusesource 和 paho)进行检查。我找到了队列的客户端 API。

0 投票
1 回答
499 浏览

java - Sprint 集成:向 MQTT 入站适配器添加/删除主题

如标题所述:如何在运行时向已启动的 MQTT 入站适配器添加/删除单个或多个主题而不停止和重新订阅?

我正在使用与docs.spring.io中的示例类似的配置:

0 投票
2 回答
7389 浏览

python - 使用 Paho 的 message_callback_add() 函数,但没有结果

我正在尝试使用此库中的 message_callback_add() 函数按主题捕获消息。下面是我用来处理我的 mqtt 订阅和发布需求的整个模块。我已经能够测试发布是否有效,但我似乎无法捕获任何传入消息。没有任何类型的警告/错误,并且这些print("position")语句仅适用于 1 和 2。

0 投票
2 回答
21593 浏览

android - android - 用于发布的 Paho MQTT 服务

我是 Android 和服务的新手。我的目标是能够设置订阅并发布主题字符串。主题字符串和客户端 ID 是在解析文本字段的输入后设置的。我正在使用Paho MQTT 服务(下载了源代码并构建了 JAR)。

以下导致空指针异常c.publish()。显示了获取传递令牌的方法logcat的异常。IMqttDeliveryToken publish(String topic, MqttMessage message, Object userContext, IMqttActionListener callback)MqttAndroidClient

您能告诉我如何使用该服务发布和订阅吗?我确实浏览了示例项目(来自 Paho Android)。LWT 和发布似乎已合并,因为 LWT ( activity_publish.xml) 的布局似乎也用于发布。

0 投票
1 回答
1832 浏览

mqtt - 使用 Paho 示例发布/订阅应用程序测量端到端延迟

我的目标是测量 MQTT 设备到设备的消息延迟(而不是吞吐量),我正在寻找关于我的代码黑客的反馈。设置很简单;只有一台设备充当两个端点(具有两个终端会话的旧 Linux PC;一个运行订阅者,另一个运行发布者示例应用程序)和默认代理位于tcp://m2m.eclipse.org:1883)。我将时间捕获代码片段插入到src/samples文件夹上的 C 语言发布/订阅示例应用程序中。

以下是更改。请提供反馈。

订阅示例应用程序的更改MQTTAsync_subscribe.c( )

msgarrvd在(消息到达)函数的顶部插入以下行

发布示例应用程序的更改MQTTAsync_publish.c( )

onSend在(回调)函数的顶部插入以下行

通过这些更改(在从发布者确认交付的时间减去消息到达订阅者的时间之后),我得到的时间介于 1 毫秒和 0.5 毫秒之间。

问题

作为延迟的粗略基准,这是否有意义?

这是往返时间吗?

往返时间是否在正确的球场?应该少吗?更多的?

是单程时间吗?

我应该以不同的方式设计延迟基准吗?我需要粗略的测量(我正在与 XMPP 进行比较)。

我正在使用默认的 QoS 值 (1)。我应该改变它吗?

发布者需要有限的时间来连接(和断开连接)。应该添加这些吗?

0 投票
6 回答
7811 浏览

java - Android - 一旦网络连接发生变化,Paho Mqtt 客户端不会收到消息(移动数据禁用并再次启用)

我正在使用 Mosquitto Mqtt 和 paho API 在 android 设备上接收推送消息。但是一旦网络连接发生变化,它就会停止接收消息。以下是使用简单测试用例重现问题的步骤:

1)创建一个简单的活动。

2) On Activity StartUp 通过 paho API 连接到 mosquitto 测试服务器 (test.mosquitto.org:1883)。

3)订阅一些主题。

4)向主题发布一些消息。

结果: Mqtt 客户端收到所有发布到该主题的消息。现在

5)禁用移动互联网连接(移动数据)

6)向主题发布一些消息。

7) 重新连接互联网。

结果:客户端在禁用 Internet 连接后未收到任何发布的消息。

由于KeepAliveInterval一直保持较高值(30 分钟),它应该在重新连接到 Internet 后接收所有消息。

相同的用例(相同的代码)适用于简单的 java 项目(非 android),我在笔记本电脑上禁用互联网以运行用例。

知道为什么它不能在安卓设备上运行吗???我错过了什么吗?

笔记:

1) 使用 mqtt-client-0.4.1

2) Android 目标 API 级别 11

3) 测试期间不让设备进入睡眠模式。

4)在connectionLost回调中没有得到任何调用,并且mqtt回调的所有4个线程都在整个测试用例中运行,即mosquitto服务器的连接完好无损。

0 投票
0 回答
3870 浏览

javascript - PhantomJS 上的 MQTT over WebSockets“AMQJS0008I Socket closed”连接错误

JBoss AeroGear JavaScript 通知器是一组适配器,它们提供统一/相似的 API 用于与不同的消息传递服务和协议进行交互。

问题

我正在为依赖于 Eclipse Paho MQTT JavaScript 客户端的JBoss AeroGear JS MQTT over WS 适配器编写一些 QUnit 测试。测试在 Firefox/Chrome 上运行,但在 PhantomJS 1.9.7 上失败并出现AMQJS0008I Socket closed连接错误。

最初,我的测试是针对支持 MQTT over WebSockets 的 Apache Active MQ 代理版本 5.9.0 运行的。我还修改了它们以使用 Eclipse Paho MQTT over WebSockets 沙箱环境ws://iot.eclipse.org/ws,但问题仍然存在。

如何重现?

克隆我的 GitHub 存储库https://github.com/tolis-e/aerogear-js-integration。签出stackoverflow分支,执行npm install然后grunt integration-iot --debug. 为了验证测试是否在 Firefox/Chrome 上运行,请tests/notifier/mqttws.html在浏览器中打开。QUnit 测试位于mqttws.js文件中。正如您在下面的日志中看到的那样,我遇到了一个AMQJS0008I Socket closed错误。

关于错误原因的任何想法?我的感觉是这个问题与 PhantomJS 1.9.7 不支持 Web Sockets RFC 6455 的事实有关。看起来 PhantomJS 2.x 将支持 RFC 6455

日志

0 投票
2 回答
2248 浏览

python - 如何对挂起的 Paho Python Mqtt Single Publish 进行故障排除

我正在寻找解决发布到本地 mosquitto 安装(在 RPi 上)的问题的方法。

我发现来自 mosquitto_sub 和 _pub 的命令可以正常工作,mqtt-os-status 也是如此。

我已经用 pip 安装了 paho-mqtt,我正在尝试以下操作:

python命令提示符没有返回......自从我上次尝试以来已经有几分钟了,我只是离开它看看我是否收到错误消息。

有人对从哪里开始故障排除有任何建议吗?或者有没有人遇到过类似的事情?

马特

0 投票
0 回答
1154 浏览

multithreading - 使用 3 个线程创建多个客户端

我注意到,对于创建的每个新客户端,都会创建 3 个其他线程(一个用于发布,一个用于重新连接,一个用于消息到达)。因此,当我创建 100 个客户端时,我得到了很多线程。我尝试为所有客户端重用相同的回调,但没有奏效。

有没有办法让多个客户端只在 3-5 个线程上运行?

谢谢


我正在使用 paho java 库。

我的代码是这样的:

//持久性和回调是静态的

谢谢