QMQTT:一个开源的MQTT客户端

网友投稿 1345 2022-12-01

QMQTT:一个开源的MQTT客户端

QMQTT:一个开源的MQTT客户端

github地址:​​GitHub - emqx/qmqtt: MQTT client for Qt​​

QMQTT

mqtt client for Qt

Please compile the library with Qt >= 5.3 version. On Windows you need to specify ​​CONFIG += NO_UNIT_TESTS​​, since gtest is not supported.

SSL is enabled by default, if the version of OpenSSL < 1.0.2, SSL may not be supported.

Disable the SSL in CMakeLists.txt (cmake):

option( ${PROJECT_NAME}_SSL "Enable SSL support for MQTT" OFF )

Disable the SSL with src/mqtt/qmqtt.pro (qmake):

CONFIG+=QMQTT_NO_SSL

To add websocket support, compile the library with Qt >= 5.7, and specify 'CONFIG += QMQTT_WEBSOCKETS'. This also works when compiling qmqtt for WebAssembly.

Usage

In your QMake project, add:

QT += qmqtt

Connect using TCP:

#include "qmqtt.h"QMQTT::Client *client = new QMQTT::Client(QHostAddress::LocalHost, 1883);client->setClientId("clientId");client->setUsername("user");client->setPassword("password");client->connectToHost();

Connect using SSL:

QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();// Add custom SSL options here (for example extra certificates)QMQTT::Client *client = new QMQTT::Client("example.com", 8883, sslConfig);client->setClientId("clientId");client->setUsername("user");client->setPassword("password");// Optionally, set ssl errors you want to ignore. Be careful, because this may weaken security.// See QSslSocket::ignoreSslErrors(const QList &) for more information.client->ignoreSslErrors()client->connectToHost();// Here's another option to suppress SSL errors (again, be careful)QObject::connect(client, &QMQTT::Client::sslErrors, [&](const QList &errors) { // Investigate the errors here, if you find no serious problems, call ignoreSslErrors() // to continue connecting. client->ignoreSslErrors();});

Connect using WebSockets:

QMQTT::Client *client = new QMQTT::Client("ws://example.com/mqtt", "", QWebSocketProtocol::VersionLatest);client->setClientId("clientId");client->setUsername("user");client->setPassword("password");client->connectToHost();

Slots

void setHost(const QHostAddress& host);void setPort(const quint16 port);void setClientId(const QString& clientId);void setUsername(const QString& username);void setPassword(const QString& password);void setKeepAlive(const int keepAlive);void setCleanSession(const bool cleansess);void setAutoReconnect(const bool value);void setAutoReconnectInterval(const int autoReconnectInterval);void setWillTopic(const QString& willTopic);void setWillQos(const quint8 willQos);void setWillRetain(const bool willRetain);void setWillMessage(const QString& willMessage);void connectToHost();void disconnectFromHost();quint16 subscribe(const QString& topic, const quint8 qos);void unsubscribe(const QString& topic);quint16 publish(const Message& message);

Signals

void connected();void disconnected();void error(const QMQTT::ClientError error);void subscribed(const QString& topic, const quint8 qos);void unsubscribed(const QString& topic);void published(const quint16 msgid, const quint8 qos);void pingresp();void received(const QMQTT::Message& message);

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:将QTextEdit右键菜单设置为中文
下一篇:Qt在pro中设置运行时库MT、MTd、MD、MDd,只适合VS版本的Qt
相关文章

 发表评论

暂时没有评论,来抢沙发吧~