mqtt 相关问题

消息队列遥测传输(MQTT)是一种发布/订阅消息传递协议,旨在最小化网络带宽使用和设备资源要求。存在的客户端和服务器实现是各种各样的语言。

MQTT:连接到 Azure IoT 中心 (Micropython)

我无法使用 MicroPython v1.22.2 使用带有 SSL 的 umqtt.simple2 库连接到 Azure IoT 中心。 从 umqtt.simple2 导入 MQTTClient HUB_HOSTNAME = "AzureIoTHubHostName" 港口...

回答 1 投票 0

无法将MQTT代理与sim868连接

有人用sim868使用MQTT吗?我的固件是1418B07SIM868M32_BT_TLS12。我能找到的唯一文档是 SIM800 Series_MQTT_Application Note_V1.03.pdf 但它没有帮助

回答 1 投票 0

使用 Spring Integration 将对象转换为 JSON 到 MQTT 负载

我正在尝试使用 Spring Integration 通过 MQTT 消息发送 JSON 作为有效负载。这是我的出站处理程序: @豆 @ServiceActivator(inputChannel = MQTT_OUTBOUND_CHANNEL) 公开

回答 1 投票 0

无法运行 MQTT Broker 服务

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

回答 1 投票 0

ESP32 + SIM7000x - 连接到 AWS IoT MQTTT 服务器

目前,我在 AWS 上有一个正在运行的“东西”,它通过 WIFI 或以太网端口连接。在那里,我可以简单地传递我的 CA 证书、公钥和私钥,并告诉 MQTTClient 使用该 cli...

回答 1 投票 0

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

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

回答 1 投票 0

Spring Integration MQTT 共享订阅

我的项目需要支持mqtt。我使用 RabbitMQ 作为代理。我开发了 Spring Boot 应用程序,并使用 Spring Integration MQTT。 @配置 公共类 MqttConfig { @豆 公开

回答 1 投票 0

获取运行 python 文件的 Kubernetes pod 的输出

我正在 kubernetes pod 内的 docker 容器上运行 python 脚本,我的脚本是一个 mqtt 脚本,当我接收消息时,它会打印出该消息(我希望能够保存它...

回答 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

如何在 Jmeter 中将 MQTT 连接设置为属性并将其传递给其他线程以使用 Pub 采样器在 MQTT 代理上发布消息

我想将 MQTT 连接设置为 Jmeter 属性,并在其他线程中使用此连接,该线程将同时向 MQTT 代理发布消息。我想要实现的是 将 MQTT 连接设置为 Jmeter

回答 2 投票 0

Paho MQTT“不支持的回调 API 版本”错误

我正在尝试实现 Paho Python MQTT 并连接到在线代理,但代码似乎出现错误。 ValueError:不支持的回调API版本:2.0版本添加了callback_api_vers...

回答 1 投票 0

为什么 Paho MQTT 给我“不支持的回调 API 版本”错误?

我正在尝试实现 Paho Python MQTT 并连接到在线代理,但代码似乎出现错误。 ValueError:不支持的回调API版本:2.0版本添加了callback_api_vers...

回答 1 投票 0

为什么 Paho MQTT 给我“不支持的回调”错误?

我正在尝试实现 Paho Python MQTT 并连接到在线代理,但代码似乎出现错误。 ValueError:不支持的回调API版本:2.0版本添加了callback_api_vers...

回答 1 投票 0

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

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

回答 3 投票 0

尽管订阅但未调用 MQTT handleMessage 函数

我正在开发一个 Go 应用程序,该应用程序订阅 MQTT 主题并使用 handleMessage 函数处理传入消息。但是,我遇到了一个问题,handleMessage 函数......

回答 1 投票 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

C#。如何在一个程序中连接2个mqtt-broker?

我正在尝试使用 C# 在一个程序中使用 2 个 MQTT 代理。 我正在使用“M2MQTT.Net”库在我的程序中使用 MQTT 应用程序。 首先,我成功与代理建立了单个 MQTT 连接。 另外,

回答 1 投票 0

MQTT可以用来为物联网设备设置数据吗?

我知道 MQTT 使用发布/订阅,这意味着所有客户端都可以发布/订阅到任何主题,并且所有客户端都必须连接到 MQTT 代理。 使用 MQTT 为物联网设置数据也是一种好的做法吗...

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

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