问题标签 [mosquitto]
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 - 使用 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服务器的连接完好无损。
migration - 将 Mosquitto 代理移动到新服务器
我们正在将生产服务器移动到新服务器。由于我们已经在使用当前服务器中安装的 Mosquitto Broker,当我们将 Broker 移动到新服务器时,所有订阅是否都保持不变?
新服务器 IP 将保持与当前服务器相同。
这次迁移有哪些挑战以及如何克服 MQTT Broker。
期待有价值的解决方案。
database - 如何从 Mosquitto 代理获取消息计数
如何从安装在 Windows 中的 Mosquitto 代理获取消息计数,或者我们可以访问和查询代理数据库?
mqtt - Windows 中的 MQTT+Mosquitto+Javascript
我是 MQTT 的新手,所以有人可以帮助我使用 javascript 将 MQTT 与 Mosquitto 连接起来我正在使用此代码,但它给出了错误...
连接失败:AMQJS0007E 套接字错误:未定义。
我的代码是:
arduino - 在 Raspberry Pi、Arduino 和 JavaScript 之间使用 MQTT
我和一个伙伴目前正在做一个项目,该项目在树莓派上托管一个网页,我想通过 MQTT 向 arduino 发送一条消息,arduino 读取传感器,然后将值发送回 pi 以显示在网络上页。
我希望在 pi 上使用 Mosquito 作为代理,并将 arduino 和网页视为客户端。
我只是在弄清楚这一切如何组合在一起时遇到了很多麻烦。
我见过的很多例子都使用 web sockets 和 node.js 和 MQTT.io,我只是很困惑..
有人可以帮我把它们拼凑在一起,并解释一切如何适合以及它的作用吗?
提前致谢!
web-services - Android - Mosquitto/MQTT - PHP/MySQL
我有个问题要问你。我必须实现一个队列来管理对服务器上数据库的访问。服务器在 PHP 和 MySQL 中。我实现了一个 Android 应用程序,通过 WebServices 使用 HTTP 请求将数据发送并存储到 DB 中。我想使用 Mosquitto 代理来实现前面提到的“访问队列”。
首先,我可以为此目的使用 Mosquitto 吗?此外,是否有必要解析 MQTT 请求中的 HTTP 请求,反之亦然?
我是 MQTT 的新手。我知道它是如何工作的,但我不知道如何实现它。欢迎提供这方面的例子!:-) 对不起,我的英语不好。非常感谢!
python - 使用 Mosquitto/Paho for Python 无法接收超过 20 条 MQTT 消息
我正在使用 Mosquitto(现为 Paho)python MQTT 客户端连接到 HiveMQ 代理。代码非常基本,取自他们的文档 - https://pypi.python.org/pypi/paho-mqtt
正如您在 client.subscribe() 中注意到的,QoS 为 2。这是对官方文档代码的唯一修改。
发布客户端的代码是-
在这里,QoS 也是 2。
这种对 QoS 的修改导致订阅者只接收到 20 条消息。经过进一步探索,我意识到问题可能是由于max_inflight_messages_set()
,这是一个选项函数,它设置 QoS>0 的最大消息数,可以同时通过它们的网络流。默认值为 20。
但是,将其更改为任何其他值都不起作用。另外,为什么客户认为这些消息在收到时仍然在进行中?我该如何解决问题?我如何确保客户理解这些消息不是“飞行中”并且已经传递?
raspberry-pi - 桥接模式下的 MQTT Mosquitto 无法在 Raspberry 和 Cloud 之间传递消息
我正在尝试连接两个 Mqtt Broker (Mosquitto)。我在云中的服务器上安装了一个,在本地 Raspberry Pi 上安装了另一个。Raspeberry Pi Mosquitto 应该建立与云实例的连接。这是我在 Raspberry 上的配置(/etc/mosquitto/conf.d/bridge.conf):
我可以直接连接到代理并发送和接收消息。我还看到在日志文件中建立了连接,但在代理之间没有传递任何消息。
有任何想法吗?
另一个谜团是,只有在 Raspberry Pi 上关闭 mosquitto 进程后,我才能看到日志输出。
此外由 Mqtt Lens 创建的消息:
c++ - 将 std::string 转换为 c-string mosquitto
我正在使用 mosquitto 向订阅者发布一些消息。
对于订户,我使用:
mosquitto_sub -h 主机 -t "new_topic" -q 0
相反,为了发布,我开发了一个使用 mosquittopp 包装器的程序,但不相关。
我使用这种方法发送消息:
如果我打印 s,我会得到:
我认为还可以。
但订阅者似乎只收到第一个字符,实际上只打印:
有任何想法吗?
更新
这是我使用的版本(1.3.1)的一个错误,从版本 1.3.4 修复。