问题标签 [libmosquitto]
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 - MQTT 动态安全插件 API 控制 - 使用发布/订阅命令的客户端/角色/组管理
我正在使用 Mosquitto 的内置安全插件来定义对我的代理的访问。到目前为止,我已经使用mosquitto_ctrl <connection options> dynsec <command> ...
命令设置了客户端、角色和组。(见蚊子)
代理在 Docker 容器中运行。但是,我想从另一个 Docker 容器(即外部)管理动态安全插件。准确地说,我想使用管理员凭据连接到代理(例如使用python paho)并发布对安全插件的修改。
我认为这必须是可能的,因为它在文档中明确提到:
初始安装后插件的所有控制都是通过 $CONTROL/dynamic-security/v1 中的 MQTT 主题 API。这允许构建集成,但不是人们直接使用的最佳选择。
例如,列出我想象中的所有客户,例如
和
不幸的是,我无法让它工作。有人知道如何将插件用作 API 吗?
谢谢!
PS:我在mosquitto github repo上使用发布命令找到了更多提示,说消息应该如下所示::
编辑:
我终于能够在hardillb的帮助下解决它。
- 像这样订阅:
- 像这样发布:
然后将在订阅端提供客户端列表。
c++ - 将 MQTT 侦听器 (mosquittopp) 创建为线程时 100% cpu 负载
我目前正在为我的 Raspberry Pi 开发一个门铃应用程序,该应用程序应该在出现特定消息时触发 GPIO 操作。
因此,我有一个主要课程doorbell
:
门铃.h
门铃.cpp
和一个简单的threadLauncher
类来处理从我的门铃类开始的线程:
线程启动器.h
线程启动器.cpp
最后,有一个mqttClient
类来处理 MQTT 的东西;它基于mosquittopp:
mqttClient.h
mqttClient.cpp
最后,我的切入点:
主文件
这是我的问题:
在我的 Raspberry Pi 4 B 上启动应用程序时,我一直在四个 CPU 之一上获得 100% 的 cpu 负载。
launcher.go(std::make_unique<std::thread>(&doorbell::registerMqttListener, this));
在我的构造函数中删除该行时doorbell.cpp
,一切正常。
这可能是mosquittopp库的错误行为还是我在这里做错了什么?
附加问题:在 Visual Studio 中远程调试 IoT 设备时,如何分析我的 CPU/RAM 使用情况?
编辑:
我现在可以确认该loop_start()
函数mosquittopp
导致 100% cpu 负载。这是一个蚊子问题还是我以错误的方式使用它?