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

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 投票
2 回答
1994 浏览

migration - 将 Mosquitto 代理移动到新服务器

我们正在将生产服务器移动到新服务器。由于我们已经在使用当前服务器中安装的 Mosquitto Broker,当我们将 Broker 移动到新服务器时,所有订阅是否都保持不变?

新服务器 IP 将保持与当前服务器相同。

这次迁移有哪些挑战以及如何克服 MQTT Broker。

期待有价值的解决方案。

0 投票
1 回答
6297 浏览

database - 如何从 Mosquitto 代理获取消息计数

如何从安装在 Windows 中的 Mosquitto 代理获取消息计数,或者我们可以访问和查询代理数据库?

0 投票
3 回答
5735 浏览

mqtt - Windows 中的 MQTT+Mosquitto+Javascript

我是 MQTT 的新手,所以有人可以帮助我使用 javascript 将 MQTT 与 Mosquitto 连接起来我正在使用此代码,但它给出了错误...

连接失败:AMQJS0007E 套接字错误:未定义。

我的代码是:

0 投票
2 回答
6443 浏览

arduino - 在 Raspberry Pi、Arduino 和 JavaScript 之间使用 MQTT

我和一个伙伴目前正在做一个项目,该项目在树莓派上托管一个网页,我想通过 MQTT 向 arduino 发送一条消息,arduino 读取传感器,然后将值发送回 pi 以显示在网络上页。

我希望在 pi 上使用 Mosquito 作为代理,并将 arduino 和网页视为客户端。

我只是在弄清楚这一切如何组合在一起时遇到了很多麻烦。

我见过的很多例子都使用 web sockets 和 node.js 和 MQTT.io,我只是很困惑..

有人可以帮我把它们拼凑在一起,并解释一切如何适合以及它的作用吗?

提前致谢!

0 投票
1 回答
2375 浏览

web-services - Android - Mosquitto/MQTT - PHP/MySQL

我有个问题要问你。我必须实现一个队列来管理对服务器上数据库的访问。服务器在 PHP 和 MySQL 中。我实现了一个 Android 应用程序,通过 WebServices 使用 HTTP 请求将数据发送并存储到 DB 中。我想使用 Mosquitto 代理来实现前面提到的“访问队列”。

首先,我可以为此目的使用 Mosquitto 吗?此外,是否有必要解析 MQTT 请求中的 HTTP 请求,反之亦然?

我是 MQTT 的新手。我知道它是如何工作的,但我不知道如何实现它。欢迎提供这方面的例子!:-) 对不起,我的英语不好。非常感谢!

0 投票
2 回答
5579 浏览

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。

但是,将其更改为任何其他值都不起作用。另外,为什么客户认为这些消息在收到时仍然在进行中?我该如何解决问题?我如何确保客户理解这些消息不是“飞行中”并且已经传递?

0 投票
2 回答
2243 浏览

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 创建的消息:

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
378 浏览

c++ - 将 std::string 转换为 c-string mosquitto

我正在使用 mosquitto 向订阅者发布一些消息。

对于订户,我使用:

mosquitto_sub -h 主机 -t "new_topic" -q 0

相反,为了发布,我开发了一个使用 mosquittopp 包装器的程序,但不相关。

我使用这种方法发送消息:

如果我打印 s,我会得到:

我认为还可以。

但订阅者似乎只收到第一个字符,实际上只打印:

有任何想法吗?

更新

这是我使用的版本(1.3.1)的一个错误,从版本 1.3.4 修复。