Qt移植mqtt庫

2020-10-03 12:01:38

環境說明

Qt版本:5.9 Mingw32
作業系統:win10

移植過程

1、從github下載qtmqtt原始碼:https://github.com/emqtt/qmqtt
在這裡插入圖片描述
2、解壓檔案,複製src->mqtt下的所有標頭檔案(所有檔案複製也可以)。在Qt的安裝目錄下的對應位置新建QtMqtt資料夾,將複製的檔案貼上在該資料夾下。
在這裡插入圖片描述
3、進入src目錄,使用Qt開啟工程(src.pro)
在這裡插入圖片描述
4、編譯工程後會在工程所在的磁碟的根目錄下生成bin、lib、include和mkspecs四個資料夾。
在這裡插入圖片描述

5、新建一個工程,將生成的資料夾中的include和lib檔案複製到工程中
在這裡插入圖片描述
6、新增工程中include資料夾下的qmqttDepengd檔案和lib資料夾下的libqmqttd.a
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
7、新增標頭檔案qmqtt.h,編譯過程中會出現部分標頭檔案找不到,將這些找不到的標頭檔案的<>改成""即可。
在這裡插入圖片描述

8、測試程式碼,嘗試連線EMQ。

    QHostAddress host("127.0.0.1");
    QByteArray password = "";
    quint16 port = 1883;
    //client->set
    client->setKeepAlive(120);
    client->setHost(host);//設定EMQ代理伺服器IP
    client->setPort(port);//設定EMQ代理伺服器埠號
    client->setClientId("esp32");//設定一個使用者端ID
    client->setUsername("test1");//設定一個使用者端使用者名稱
    client->setPassword(password);//設定一個使用者端密碼![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201002135908550.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzkwNjY0,size_16,color_FFFFFF,t_70#pic_center)

    client->cleanSession();//清除快取
    client->setVersion(QMQTT::MQTTVersion::V3_1_1);//設定mqtt版本
    client->connectToHost();//連線EMQ代理伺服器

登入EMQ,登陸方式127.0.0.0:18083(127.0.0.0用你的IP代替),如果EMQ安裝在自己的電腦上可以通過localhost:18083進行登入。登陸後便可以看到是否已經連線成功。
在這裡插入圖片描述
MQTT入門建議使用EMQ,參考官方檔案,在自己的電腦上安裝一個EMQ,可以實現區域網下的MQTT通訊。如果想實現MQTT的遠端通訊,可以在阿里雲、騰訊與或華為雲租一個雲伺服器。(注:我用的是阿里雲的雲伺服器ECS,通過學生認證後一個月只需要9.8元)