mosquitto 相关问题

开源MQTT v3.1 / v3.1.1代理

Mosquitto:仅以本地模式启动但无法修复

运行家庭自动化的 Rpi4 最近从 mosquitto 版本 1.6.12 升级到 2.0.8,因此它以仅本地模式启动。 做了一些挖掘,但仍然无法...

回答 3 投票 0

如何使用 WebSocket 在 Python 服务器、MQTT 代理和 Web 客户端之间实现反应式通信?

我正在开发一个项目,我想实现一个系统,该系统可以从使用 Mosquitto 实现的 MQTT 代理接收消息,并将它们反应式地转发到 Web 浏览器,而无需求助于

回答 1 投票 0

无法获取 Mosquitto <-> AWS IoT - 保持连接的桥梁

我正在 AWS Ubuntu 20.04.2 LTS 服务器上运行 Mosquitto Broker。我有 2 个 MQTT 桥接器,从我的笔记本电脑到服务器上的代理,以及从服务器到 AWS IoT。 我在服务器上的代理配置...

回答 2 投票 0

无法打开源文件“mosquitto.h”C/C++(1696)

我正在尝试将 mosquitto.h 包含到我的项目中。我将 mosquitto 从“mosquitto-2.0.18-install-windows-x64”安装程序安装到 C:\Program Files\mosquitto\devel。 看来我已经...

回答 1 投票 0

如何为 MQTT 主题添加后缀

我使用的是 Polar H10 心率传感器,它连接一个名为 Polar 传感器数据记录器的手机应用程序。我正在使用这个应用程序通过 MQTT 协议发布数据。发布传感器读数

回答 1 投票 0

通过 MQTT / mosquitto 发送大文件 - 限制为 4MB

我的目标是能够通过 mosquitto 发送大约 150MB 的文件。这种转移的效率问题目前并不重要,只是看看这样的转移是否可能......

回答 2 投票 0

即使 MQTT 代理未运行,mosquitto_publish 也会返回 MOSQ_ERR_SUCCESS

我使用 Mosquitto C 客户端库连接到 MQTT 代理。 我使用下面的代码进行连接。 ret = mosquitto_connect (mosq, MQTT_HOSTNAME, MQTT_PORT, 0); 连接到经纪人后我停止了......

回答 2 投票 0

使用 mqtt.js 通过安全 WebSocket 的 mqtt

我有一个 eclipse-mosquitto 容器在服务器上运行,我想通过 wss 连接到该服务器。 我在服务器上有以下配置 允许匿名假 密码文件 /mosquitto/config/...

回答 1 投票 0

如何使用 mosquitto_sub 和证书订阅 azure 事件网格

我正在使用 Azure 事件网格(将其用作 MQTT 代理),按照本教程生成客户端证书 Azure-event grid-generate-sample-client-certificate-and-thumbprint 在我妈...

回答 2 投票 0

Python MQTT on_subscribes 触发额外时间

我正在使用loop_start和循环。我在 on_connection 回调中订阅了 1 个主题。但是,on_subscribe 回调会被触发 2 次。然后第二个来了,下一个loop()出错 循环:...

回答 1 投票 0

mosquitto_sub 在二进制消息中显示字节之间的空格的格式是什么?

此选项不会在二进制消息中的字节之间产生间距: paul@desktop:~$ mosquitto_sub -t 输出 -F '%x' -v 3031320033340035 3031320033340035 我希望这会起作用: 保罗@桌面:~$

回答 1 投票 0

无法运行 MQTT Broker 服务

首先,当我设置 听众 1883 允许匿名 true 在 mosquitto.conf 中, 我可以通过 CMD 中的“net start mosquitto”运行 mqtt 代理服务,当我检查服务时它起作用了...

回答 1 投票 0

使用 SSL(和 docker)的 Apache 反向代理上的 Mosquitto

我想要做的是将 eclipse-mosquitto 作为 MQTT 代理运行在带有 SSL 的 Apache 反向代理后面。 我编写了以下 docker-compose 文件: 版本:“3.9” 服务: 清真寺...

回答 1 投票 0

php-mqtt 在发布者离线一段时间后停止接收消息

我设置了一个 systemd 服务(在 Ubuntu 22.04 中),以便使用 php-mqtt 库处理来自 Mosquitto 的消息。这是我的整个代码: 我设置了一个 systemd 服务(在 Ubuntu 22.04 中),以便使用 php-mqtt 库处理来自 Mosquitto 的消息。这是我的整个代码: <?php header("Access-Control-Allow-Origin: *"); require 'database.php'; require('vendor/autoload.php'); use PhpMqtt\Client\MqttClient; use PhpMqtt\Client\ConnectionSettings; ini_set('display_errors', 1); error_reporting(E_ALL); $server = '<server>'; $port = 1883; $clientId = '<id>'; $username = '<user>'; $password = '<password>'; $connectionSettings = (new ConnectionSettings) ->setUsername($username) ->setPassword($password) ->setKeepAliveInterval(60) ->setLastWillQualityOfService(1) ->setConnectTimeout(60) ->setMaxReconnectAttempts(PHP_INT_MAX) ->setReconnectAutomatically(true); $mqtt = new MqttClient($server, $port, $clientId, MqttClient::MQTT_3_1); $mqtt->connect($connectionSettings, false); function append($db, $sample) { try { $stmt = $db->prepare("INSERT INTO sensors (sampled, temperature, humidity) VALUES (CURRENT_TIMESTAMP(), :temperature, :humidity);"); $stmt->execute($sample); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } } $mqtt->subscribe('<topic1>', function ($topic, $message) use (&$data, &$dbApp) { printf("Received message on topic [%s]: %s\n", $topic, $message); if ($message === 'Offline') { $sample = [ 'temperature' => NULL, 'humidity' => NULL ]; append($dbApp, $sample); } }, 0); $mqtt->subscribe('<topic2>', function ($topic, $message) use (&$data, &$dbApp) { printf("Received message on topic [%s]: %s\n", $topic, $message); $obj = json_decode($message); $sample = [ 'temperature' => floatval($obj->Temperature), 'humidity' => floatval($obj->Humidity) ]; append($dbApp, $sample); }, 0); $mqtt->loop(true); $mqtt->close(); $dbApp = null; 这里是 systemd 单元: [Unit] Description=MQTT receiver [Service] Type=simple ExecStart=/usr/bin/php /usr/share/nginx/html/mqtt.php Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 这里观察到的行为: 启动经纪人 开始mqtt.service 启动发布者(物联网设备),以 LWT 形式发送 <topic1> 离线消息并发送 <topic2> 实际数据 检查一切正常:好的 关闭发布器电源并等待断开连接(收到LWT消息):OK 一段时间后再次打开并确认它仍然按预期工作:好的 如果第 6 点中的“某个时间”的持续时间是几个小时(例如过夜),就会出现问题。第二天早上,我打开传感器电源,但 PHP 页面不再接收消息(即不再显示“已收到主题消息...”)。 使用 mosquitto_sub 订阅主题会收到消息 - 因此代理正在运行。 systemd 服务处于活动状态并且没有显示错误,我看到了前一天的最后一行。重新启动服务会再次收到消息。 这似乎是一个很好的指标,我在代码中犯了错误,但我找不到错误所在。 根据用户Namoshek的好建议,我解决了更改代码如下: database.php <?php $SERVER_APP = "localhost"; $DATABASE_APP = "<database>"; $USERNAME_APP = "<user>"; $PASSWORD_APP = "<password>"; function db_connect() { global $SERVER_APP, $DATABASE_APP, $USERNAME_APP, $PASSWORD_APP; try { $dbApp = new PDO("mysql:host=$SERVER_APP;dbname=$DATABASE_APP", $USERNAME_APP, $PASSWORD_APP); $dbApp->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbApp->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); return $dbApp; } catch (PDOException $e) { echo "Connection to APP database failed:" . PHP_EOL . $e->getMessage(); } } mqtt.php <?php header("Access-Control-Allow-Origin: *"); require 'database.php'; require('vendor/autoload.php'); use PhpMqtt\Client\MqttClient; use PhpMqtt\Client\ConnectionSettings; ini_set('display_errors', 1); error_reporting(E_ALL); $server = '<address>'; $port = 1883; $clientId = '<id>'; $username = '<user>'; $password = '<password>'; $connectionSettings = (new ConnectionSettings) ->setUsername($username) ->setPassword($password) ->setKeepAliveInterval(60) ->setConnectTimeout(60) ->setMaxReconnectAttempts(PHP_INT_MAX) ->setReconnectAutomatically(true); $mqtt = new MqttClient($server, $port, $clientId, MqttClient::MQTT_3_1_1); $mqtt->connect($connectionSettings, false); function append($sample) { $dbApp = db_connect(); try { $stmt = $dbApp->prepare("INSERT INTO sensors (sampled, temperature, humidity) VALUES (CURRENT_TIMESTAMP(), :temperature, :humidity);"); $stmt->execute($sample); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } $dbApp = null; } $mqtt->subscribe('<topic>', function ($topic, $message) { printf("Received message on topic [%s]: %s\n", $topic, $message); $obj = json_decode($message); $sample = [ 'temperature' => floatval($obj->Temperature), 'humidity' => floatval($obj->Humidity) ]; append($sample); }); $mqtt->loop(true); $mqtt->close(); 现在每次我需要追加记录时都会创建与数据库的连接,并在之后立即关闭。

回答 1 投票 0

错误:无法写入pid文件Mosquitto v2.0.3

自从我在 Ubuntu 16.04 上更新 Mosquitto v2.0.3 以来,用户无法连接到代理。 当我尝试使用 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 运行时,它抛出以下消息....

回答 3 投票 0

如何使用不同的协议配置两个Mosquitto监听器?

我正在尝试在 Ubuntu 22.04 中的 mosquitto 2.0.11 上启用 websocket。 这是我的/etc/mosquitto/mosquitto.conf: pid_file /run/mosquitto/mosquitto.pid per_listener_settings true 密码文件 /etc/mosqui...

回答 1 投票 0

如何在 PostgreSQL 中使用 Mosquitto 身份验证插件?

我正在 PostgreSQL 和 Mosquitto MQTT 上编写一个服务器。使用 PostgreSQL 数据库的客户端需要使用 MQTT 授权。 我找不到任何说明,甚至找不到解释...

回答 1 投票 0

mosquitto-go-auth 出现 postgres 授权错误

我安装了蚊子经纪人和postgres数据库。下载并配置 mosquitto-go-auth 插件。 蚊子状况: 加载配置文件 /etc/mosquitto/conf.d/go-auth.conf 时间=“2...

回答 1 投票 0

在 Mosquitto 上断开和重新连接用户:需要测试命令

我正在寻找强制断开用户连接然后允许他们在 Mosquitto 上重新连接的命令。这是出于测试目的。任何人都可以提供实现此目标所需的命令吗? ...

回答 1 投票 0

通过 MQTT 的 IoTAgent (JSON) 未接收来自 mosquitto 的测量结果

目标:使用 FIWARE 提供的 IoTAgent (JSON) 和 MQTT 传输协议。特别是,我想提供一个服务组而不是单个设备,这样匿名德...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.