由於專案原因,要使用qt的mqtt模組,但之前使用的是qt5.5.1版本,而qt5.10之前不支援mqtt,因此需要編譯的方式去安裝子模組,參考qt以編譯方式安裝mqtt進行安裝。
如果在qt中使用,在pro檔案中加上:
qt += qmqtt
如果在vs中整合qt使用該模組,則需要在專案屬性中包含目錄加入mqtt的目錄
還要在附加依賴項中加入qt5qmqtt.lib
#include "qmqtt.h"
qmqtt::client *client = new qmqtt::client(qhostaddress::localhost, 1883);//連線127.0.0.1:1883
client->setclientid("clientid");//客戶端id
client->setusername("user");//使用者名稱
client->setpassword("password");//密碼
client->connecttohost();//連線伺服器
此時可以進行測試。
mqtt (message queue telemetry transport),其主要提供了訂閱/發布兩種訊息模式,更為簡約、輕量,易於使用,特別適合於受限環境(頻寬低、網路延遲高、網路通訊不穩定)的訊息分發,屬於物聯網(internet of thing)的乙個標準傳輸協議。
mqtt是應用層的協議。該協議支援所有平台,幾乎可以把所有聯網物品和外部連線起來,被用來當做感測器的通訊協議。
圖示如下:
具體講解以及和socket區別可以參考這篇部落格:socket和mqtt
mqtt的使用包括訂閱和接收等命令,具體如下**所示:
//連線
connect(m_client, &qmqtt::client::connected, this, [this]() );
//斷開連線
connect(m_client, &qmqtt::client::disconnected, this, [this]() );
//接收訊息
connect(m_client, &qmqtt::client::received, this, [this](const qmqtt::message& message) );
//訂閱
connect(m_client, &qmqtt::client::subscribed, this, [this](const qstring& topic, const quint8 qos) );
//取消訂閱
connect(m_client, &qmqtt::client::unsubscribed, this, [this](const qstring& topic) );
//發布
connect(m_client, &qmqtt::client::published, this, [this](const qmqtt::message& message, quint16 msgid) );
//錯誤
connect(m_client, &qmqtt::client::error, this, [this](const qmqtt::clienterror error) );
上述**使用qt的槽和函式進行繫結,當發生相應的事件時,執行函式。
發布和訂閱的命令如下所示:
qstring m_pub_topic = "pub";// pub topic
//發布
m_client->publish(qmqtt::message(1,m_pub_topic,qstring("send").toutf8()));
//訂閱
m_client->subscribe(m_pub_topic);
發布和訂閱是以topic進行的,根據對應的topic進行發布和訂閱。 MQTT安裝和php使用mosquitto的例項
解壓 tar zxfv mosquitto 1.6.7.tar.gz mv mosquitto 1.6.7 mosquitto 進入目錄 cd mosquitto 編譯 安裝 make make install 可以看到最後幾行,說明在 etc 下建立了配置檔案和密碼檔案,後面可以使用,也可以就使用...
Qt 5 5增加了新的GL模組,並改進了跨平台支援
距離qt 5.4發布僅僅六個月,qt 5.5就修復了將近1500個已知缺陷,並增加了新的特性。另外,除了可以確保及時為windows 10做好準備外,它還改進了linux及os x相容性。qt 5.5引入的新功能包括 此外,qt 5.5還停用了一些被新模組所取代的模組,包括被qtwebengine取...
MQTT初體驗mosquitto的安裝和使用
一 簡單介紹 二 環境介紹 2 mqtt版本 mosquitto 1.4.5 三 環境準備 1 資源獲取 wget 解壓 tar zxfv mosquitto 1.4.9.tar.gz 2 linux環境準備 ares.h sudo yum install libc ares dev uuid.h ...