MQTT C++ 客户端

MQTT C++ client

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

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

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

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

然后我发现了这个问题:,结论是:

to use libmosquitto with libmosquittopp wrapper

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

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

The wrapper came about by an external request and at the time it was created there were no other C++ solutions for MQTT. This has changed in the past years and this wrapper provides no benefit over true C++ libraries or using the pure C libmosquitto.

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

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

或者,其他任何东西(除了从 0 开始写)?

Paho C++ 库支持 MQTT v5,并且是线程安全的。您可以使用单个客户端连接从多个线程发布和订阅。

一些 Eclipse 网页需要更新为最新功能。 GitHub 存储库往往包含最新信息。

Paho C++ 库只是包装了 Paho C 库,但提供了异步的、futures 风格的 API,并通过共享指针提供了内存管理。

如果您使用Boost.asio,那么这个项目就是正确的选择。

https://github.com/redboltz/mqtt_cpp

它是原生 C++,没有 wrapper-around-C,同时支持 v3.1.1 和 v5。