Qt开发MQTT(二) 之第三方QMQTT
概述
上一篇文章已經介紹了Qt官方提供的MQTT封裝的使用方式,除此之外,還有另外一個第三方的公司也提供了針對MQTT的Qt封裝接口,其使用方式都差不多,只是接口名稱有些變化,這里也簡單的介紹一下,可以根據個人喜好來選擇使用那種方式。
官網地址:https://www.emqx.io/cn/
下載編譯
EMQ也提供了源碼供大家下載使用,地址在這里
我們將源碼下載后進行編譯,編譯過程和上一篇文章介紹的差不多,這里就不再詳細講了。
我們使用Release模式編譯后,同樣也會得到和之前一樣的生成文件:
根據前一篇文章的步驟我們將生成庫部署到Qt的安裝目錄。
注意:這兩種對MQTT的封裝的源碼編譯生成出來的庫名稱是一樣的,但是提供的接口不一樣,所以如果編譯了這兩種源碼,不要全部都部署到Qt安裝目錄,會覆蓋的。如果編譯了兩份源碼并且都想嘗試使用, 那么可以將一個部署到Qt安裝目錄,另一個直接用外部庫的方式導入到測試測試項目中進行使用,這兩種方法都已經在前一篇文章中詳細介紹過了。
接口
EMQ提供的這個MQTT的封裝就不像Qt官方提供的那樣完善了,我目前找到的也就只有github上的簡短介紹,但其實我們有了源碼,要去看相應的接口還是挺方便的。在源碼里面對每個接口介紹挺詳細的。
那么它提供的主要接口有以下這些:
槽
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);SIGNAL
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);使用
以上我們把源碼已經編譯出來了,那么要如何使用它的接口呢,步驟非常簡單:
首先,同樣是在pro文件中添加
QT += qmqtt然后連接服務器:
#include "qmqtt.h"QMQTT::Client *client = new QMQTT::Client(QHostAddress::LocalHost, 1883); client->setClientId("clientId"); client->setUsername("user"); client->setPassword("password"); client->connectToHost();完整的示例我們在后面講完連接服務器后介紹,這里先暫時不講。
總結
以上是生活随笔為你收集整理的Qt开发MQTT(二) 之第三方QMQTT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MQTT--物联网(IoT)消息推送协议
- 下一篇: 对求助者说声抱歉~