问题标签 [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.
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主题上,任何人都知道接收友好消息的正确方法吗?
java - ActiveMQ 中是否支持 MQTT 队列?
我是新手,正在学习这个协议。在阅读有关 MQTT 的 wiki 时。第一行“MQTT[1] 是基于发布-订阅的“轻量级”消息传递协议,用于 TCP/IP 协议之上。”
这是否意味着 MQTT 仅支持 Topic 而不支持或使用队列?
因为,即使我使用可用的客户端 API(fusesource 和 paho)进行检查。我找到了队列的客户端 API。
java - Sprint 集成:向 MQTT 入站适配器添加/删除主题
如标题所述:如何在运行时向已启动的 MQTT 入站适配器添加/删除单个或多个主题而不停止和重新订阅?
我正在使用与docs.spring.io中的示例类似的配置:
python - 使用 Paho 的 message_callback_add() 函数,但没有结果
我正在尝试使用此库中的 message_callback_add() 函数按主题捕获消息。下面是我用来处理我的 mqtt 订阅和发布需求的整个模块。我已经能够测试发布是否有效,但我似乎无法捕获任何传入消息。没有任何类型的警告/错误,并且这些print("position")
语句仅适用于 1 和 2。
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
) 的布局似乎也用于发布。
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)。我应该改变它吗?
发布者需要有限的时间来连接(和断开连接)。应该添加这些吗?
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服务器的连接完好无损。
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
日志
python - 如何对挂起的 Paho Python Mqtt Single Publish 进行故障排除
我正在寻找解决发布到本地 mosquitto 安装(在 RPi 上)的问题的方法。
我发现来自 mosquitto_sub 和 _pub 的命令可以正常工作,mqtt-os-status 也是如此。
我已经用 pip 安装了 paho-mqtt,我正在尝试以下操作:
python命令提示符没有返回......自从我上次尝试以来已经有几分钟了,我只是离开它看看我是否收到错误消息。
有人对从哪里开始故障排除有任何建议吗?或者有没有人遇到过类似的事情?
马特
multithreading - 使用 3 个线程创建多个客户端
我注意到,对于创建的每个新客户端,都会创建 3 个其他线程(一个用于发布,一个用于重新连接,一个用于消息到达)。因此,当我创建 100 个客户端时,我得到了很多线程。我尝试为所有客户端重用相同的回调,但没有奏效。
有没有办法让多个客户端只在 3-5 个线程上运行?
谢谢
我正在使用 paho java 库。
我的代码是这样的:
//持久性和回调是静态的
谢谢