app开发者平台在数字化时代的重要性与发展趋势解析
1407
2022-12-01
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)client->connectToHost();// Here's another option to suppress SSL errors (again, be careful)QObject::connect(client, &QMQTT::Client::sslErrors, [&](const QList
Connect using WebSockets:
QMQTT::Client *client = new QMQTT::Client("ws://example.com/mqtt", "
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~