日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Qt开发MQTT(二) 之第三方QMQTT

發布時間:2025/1/21 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。