问题标签 [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.
mqtt - How to use the un-blocking method of MqttClient
When I try the below code to connect to the mosquitto
broker, as you know, connecting to the broker might takes few seconds/minutes, and during that time when the button pressed to connect, it remains pressed till the connection established and when the connection established the button released back to its normal state. As far as I know, there are two way for connecting a client using paho java API
, the blocking method
and unblocking method
. my question is, how to use the unblocking method
? beow is my attempt to use the blocking method
Code_1:
mqtt - 免费的 Xively 帐户是否会导致 QoS 1 或 2 发布失败?
如果我使用 QoS 0,我的代码(如下)正在工作。但对于 QoS 1 或 QoS 2。MQTTClient_publishMessage(...) 失败。我是否缺少任何配置?或者,是因为我使用的是免费的 XIvely 帐户吗?
我使用 Paho API。
------------------------------------------- 切割开始 ---------------- ---------------------
------------------------------------------- 切割结束 ---------------- ---------------------
python - Eclipse Paho Python 客户端未连接
当我尝试运行屏幕下方的代码时,屏幕仍然为空白,并且不表示客户端已连接到代理。
我可以验证代理是否正常运行,因为我能够运行
并获取从我的 Android 手机上的 MyMQTT 应用程序发送的消息。我还忘了提到这一切都在安装了 mosquitto、mosquitto-clients 和 paho-mqtt 的树莓派上。
java - ActiveMQ + MQTT + 订阅“ActiveMQ.Advisory.Connection”
这是上下文:
Java 应用程序通过 MQTT (Paho 0.4.0) 从 ActiveMQ 5.9.1 订阅主题“ActiveMQ.Advisory.Connection”:
与 ActiveMQ 的连接建立良好。本主题提供有关 ActiveMQ 中的连接(打开/关闭)的信息,但我的问题是我捕获的消息是空的:
MQTT 消息到达[ActiveMQ/Advisory/Connection] Msg[]
有什么方法可以使用 MQTT 捕获它们?或者我应该为此使用JMS?
谢谢,乔恩安德。
python - paho-mqtt : 回调线程
我正在使用 paho-mqtt 在 python 中实现一个 MQTT 工作者。
是否所有的 on_message() 都在不同的线程中进行多线程处理,这样如果其中一项任务很耗时,其他消息仍然可以处理?
如果没有,如何实现这种行为?
javascript - MQTT Js Last Will 消息未发布
我有以下代码-->
当我断开客户端连接时,我希望将最后一个遗嘱消息发送到我创建的主题..我正在使用 Paho 的 mqtt 版本-3.1 .. Websockets 正在创建良好,但我没有看到最后遗嘱消息...
任何人都可以在这里指导吗?
添加更大的图片:
我有一个 Python 脚本 p 收集本地环境中 IOT 设备的当前开/关状态,并通过 mqtt 发布到主题“IOT1”。我不希望 python 脚本始终运行以从 IOT 设备获取状态,因为它使设备过载.. 为了解决这个问题,我需要为“IOT1”主题找到活动客户端,以便我运行或暂停发送请求的线程本地环境中的IOT设备..除了最后一条消息之外还有其他方法可以知道吗?
c - PAHO 嵌入式 C 库 Socket Recive 实现
我正在尝试将 PAHO 嵌入式 C 库实现到自定义设备(STM32F405/GPRS 模块)
我的主要问题是创建自定义 recv() 函数,它将使用源作为缓冲区。
在 PAHO 库示例中,有一个 transport_getdata() 函数。它处理传输层。这是 tranport_getdata() 函数。此示例使用我没有的套接字库:(
要将库移植到我的项目中,我需要编写自己的 recv() 函数,例如 my_recv()。
Standardd socket Recv() 函数描述说,
Recv() 将返回从源写入缓冲区的消息长度。
所以我尝试编写 my_recv() 来替换 recv() ,(我不需要套接字 ID 和 FLAG)
处理 TCP 传入数据,我有一个通过 GPRS 模块的串行/TCP 透明连接。
我使用中断来读取串行中的每个字节以及写入 serial_buffer 的所有传入字节。
对于简单的测试,我从 TCP 套接字发送“1234567890”,
简单的测试代码是
我的系统输出是,
我不确定我是否理解 recv() 函数。这个输出没问题。
Couse 仍然无法使用 PAHO 库处理 MQTT 包。
android - Win7上使用Maven构建Paho项目失败
我尝试使用PAHO在 Android 上创建一个 MQTT 项目。
根据描述,我将源代码克隆到我的电脑,并使用
mvn 干净安装
构建项目。
我下载了 org.eclipse.paho.mqtt.java-1.0.0,并期望得到:
- org.eclipse.paho.client.mqttv3-1.0.0.jar 和
- org.eclipse.paho.android.service-1.0.0.jar
但是运行 mvn clean install 后,我只能得到 org.eclipse.paho.client.mqttv3-1.0.0.jar,所以无法构建项目。
这是消息输出:
谁能给我一些建议来解决这个问题?
多谢!!
java - MQTT订阅客户端连接后收不到消息
我正在尝试学习 MQTT 并一直在玩弄它。我编写了一个用于发布的客户端和一个用于订阅的客户端(见下文)。
如果我运行订阅客户端,然后运行发布客户端(在订阅运行时),那么一切正常。我的订阅客户端正确接收发布到主题的消息。
但是,如果我先运行发布客户端(即,我向主题发布消息)然后运行订阅客户端,我将不会收到任何消息。
换句话说,如果我先连接子客户端,然后在连接子客户端时使用 pub 客户端发布消息,一切正常。但是,如果我先发布消息,然后连接到我的子客户端,我将不会收到任何消息。我的理解是,一旦我与客户端连接并订阅该主题,我应该会收到有关该主题的消息。
我发现了一个类似的问题:Cannot receive already published messages to subscribed topic on mqtt paho,尽管这种情况似乎有点不同。我尝试更改不同的 QoS 设置或 cleanSession 标志,但这并没有解决问题。
任何帮助,将不胜感激!
发布客户端:
}
订阅客户:
}
mqtt - 代理超时/客户端断开连接时的 Paho MQTT 客户端行为
当 MQTT 代理或客户端出现问题时,我有许多 QoS2 级别的消息在场景中导致问题。这些问题可能包括
- 客户端开始看到服务器超时
- 客户端已失去与代理的连接(互联网连接断开,代理出现问题,......)一段时间并重新连接。
通常,当 MQTT 客户端开始从代理接收超时或其他错误时,消息将存储在持久性存储中(运行中的消息)并最终重新发布。
但是,在 Paho 客户端失去与代理的连接的情况下,消息将不再被视为在传输中,并且不会被 Paho 存储。在这一点上,应用程序似乎负责保存这些消息(在 paho 之外)并重新发布它们。
我是否正确地说,当 MQTT 代理不可用时,Paho MQTT 客户端无法帮助我保证这些 QoS2 级别的消息将被重新传递?
那么我该如何区分以下情况,其中 client.publish 导致了 MqttException ,其中 Paho 没有持续发送消息。
以下是它在飞行中持续存在的地方
显然,我也可以开始记账并分别保存所有失败的消息,但最终可能会出现 QoS 级别 2 重复(Paho 和我自己都重新发布的消息)。
客户端应该如何编程?
- 是否需要基于异常代码与 Paho 一起做我自己的消息持久性?
- 我是否需要考虑 connectionLost 回调并假设从那时起 Paho 不会为我保留任何东西,直到 MQTT 客户端重新连接?
- 在发布之前,我是否需要检查客户端是否正确连接,如果是,则假设 Paho 将保留消息?
以下是 Paho 的一些异常和持久性行为
- 连接丢失 (32109):消息由 paho 持久化
- 客户端当前正在断开连接 (32102):消息被 paho 丢失
- 等待服务器响应超时(32000):消息被持久化 paho
- 客户端未连接 (32104):消息被 paho 丢失
Paho 有哪些最佳实践?