标签: pahocpp

MQTT C++ 客户端

我想用 C++ 实现一个 MQTT 客户端功能(它需要是线程安全的,并且能够订阅主题和发布,但不需要代​​理功能)。

我正在考虑Eclipse 的Paho MQTT是他们的下载页面。

我发现他们没有 MQTT5.0 支持。

然而,在他们的github 上:有一个 C++ 包装器,它在 1.1 版中声明了 MQTTv5.0 支持。

然后我发现了这个问题:Mosquitto vs eclipse paho client library,结论是:

将 libmosquitto 与libmosquittopp包装器一起使用

我检查了 libmosquittopp.h:所有函数都被标记为已弃用,所以我认为到目前为止它不是正确的方法。

为什么不推荐使用 libmosquittopp?因为

包装器是由外部请求产生的,在创建它时,没有其他适用于 MQTT 的 C++ 解决方案。这在过去几年中发生了变化,与真正的 C++ 库或使用纯 C libmosquitto 相比,此包装器没有任何好处。

那么,Paho 现在是否被认为是在 C++ 中使用 MQTT 的正确方向?

或者我只使用 Mosquitto 的纯 C 库?

或者,还有什么(除了从 0 开始写)?

c++ mqtt libmosquitto pahocpp

7
推荐指数
3
解决办法
9684
查看次数

使用 https://github.com/eclipse/paho.mqtt.cpp 进行 cmake 构建

我对 有点陌生CMake。所以这可能是一个菜鸟问题..

我正在尝试使用CMake. 我希望我的程序发布到 mqtt 代理。我在 Linux 上运行。

所以我https://github.com/eclipse/paho.mqtt.cpp通过做(并排)安装了相应的c项目

$ git clone https://github.com/eclipse/paho.mqtt.c.git
$ cd paho.mqtt.c
$ git checkout v1.3.1

$ cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_ENABLE_TESTING=OFF
$ sudo cmake --build build/ --target install
$ sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

按照文档然后做。

$ git clone https://github.com/eclipse/paho.mqtt.cpp
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
Run Code Online (Sandbox Code Playgroud)

一切都工作正常,没有任何错误。现在我应该在我自己的项目中放入我自己的 cmakelists 文件中什么,我可以使用这些库?所以我可以做。

#include "mqtt/async_client.h"

int main(int argc, char *argv[]){
   std::cout << "Hello World!" << std::endl;
   mqtt::async_client cli(DFLT_ADDRESS, …
Run Code Online (Sandbox Code Playgroud)

c++ cmake mqtt pahocpp

3
推荐指数
1
解决办法
1842
查看次数

标签 统计

c++ ×2

mqtt ×2

pahocpp ×2

cmake ×1

libmosquitto ×1