MQTT協議實踐
一、MQTT簡介
MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸協議),是IBM推出的一種針對移動終端裝置的基於TCP/IP的釋出/預訂協議,可以連線大量的遠端感測器和控制裝置:
輕量級的訊息訂閱和釋出(publish/subscribe)協議
建立在TCP/IP協議之上
1.1 MQTT的特點:
(1)MQTT是一個基於客戶端-伺服器的訊息釋出/訂閱傳輸協議。
(2)MQTT協議是輕量、簡單、開放和易於實現的,這些特點使其使用於在物聯網、小型裝置、移動應用等方面應用。
(3)MQTT可以以極少的程式碼和有限的頻寬,為連線遠端裝置提供實時可靠的訊息服務
使用MQTT的訊息釋出服務質量
(4)“至多一次”,訊息釋出完全依賴底層 TCP/IP 網路。會發生訊息丟失或重複。這一級別可用於如下情況,環境感測器資料,丟失一次讀記錄無所謂,因為不久後還會有第二次傳送。
(5)“至少一次”,確保訊息到達,但訊息重複可能會發生。
(6)“只有一次”,確保訊息到達一次。這一級別可用於如下情況,在計費系統中,訊息重複或丟失會導致不正確的結果。
1.2 MQTT的三種角色::
(1)Broker代理:很多人理解為中介軟體,當然可以這樣子認為。他就是一箇中介軟體。用於處理資訊併傳送到相應的訂閱者。
(2)釋出者:用於釋出資訊到代理上面。注意:釋出者也可以是訂閱者。
(3)訂閱者:就是用於接受資訊的客戶端。
1.3 由於物聯網的環境是非常特別的,所以MQTT遵循以下設計原則:
(1)精簡,不新增可有可無的功能。
(2)釋出/訂閱(Pub/Sub)模式,方便訊息在感測器之間傳遞。
(3)允許使用者動態建立主題,零運維成本。
(4)把傳輸量降到最低以提高傳輸效率。
(5)把低頻寬、高延遲、不穩定的網路等因素考慮在內。
(6)支援連續的會話控制。
(7)理解客戶端計算能力可能很低。
(8)提供服務質量管理。
(9)假設資料不可知,不強求傳輸資料的型別與格式,保持靈活性。
二、使用Apollo搭建MQTT伺服器
2.1下載Apache Apoll
https://pan.baidu.com/s/1c2NJmJe
2.2解壓之後的檔案如圖所示
2.3配置java的jdk
將java路徑新增到系統變數中
2.4建立apollo使用者
在cmd命令列視窗中切換到剛剛解壓的bin目錄下
執行命令:
apollo.cmd create apollogb
注:(apollogb是自己取的名字)。
在解壓後的bin目錄下就會建立一個使用者:
2.5開啟apollo服務
在cmd視窗中的建立使用者的bin目錄下執行如下命令:
apollo-broker.cmd run
但是這種方式cmd視窗不能關掉,關掉之後,就無法進行訪問。
如圖所示:
至此,MQTT伺服器已經搭建完成。
三、建立一個客戶端進行連線
3.1下載客戶端
https://pan.baidu.com/s/1mi5mdRi
3.2解壓之後
開啟資料夾,點選執行paho應用程式
3.3新增連線並設定
輸入使用者名稱和密碼:
連線成功後,伺服器上會出現如下顯示
四、訊息釋出與訂閱
4.1客戶端1:訂閱hello主題
4.2客戶端2:釋出hello主題
4.3在客戶端2釋出hello主題後,客戶端1就會收到客戶端2傳送出來的主題中的內容。
至此,MQTT協議的簡單實踐就完成了
五、參考資料
https://blog.csdn.net/qq_43279579/article/details/111873008
https://zhuanlan.zhihu.com/p/20888181
相關文章
- MQTT協議詳解及v5.0實踐MQQT協議
- MQTT協議(二)MQQT協議
- 初識MQTT協議MQQT協議
- MQTT 協議 -- CONNECT & CONNACKMQQT協議
- MQTT 協議是個啥?MQQT協議
- MQTT 協議快速體驗MQQT協議
- HTTP協議和MQTT協議對比誰更好HTTP協議MQQT
- MQTT工作筆記0001---MQTT協議概述MQQT筆記協議
- 19_MQTT協議介紹MQQT協議
- 輕量通訊協議 --- MQTT協議MQQT
- MQTT 協議中的 Keep Alive 。MQQT協議
- MQTT 協議 Keep Alive 詳解MQQT協議
- RPC協議實踐入門RPC協議
- MQTT協議 paho.mqtt.golang keepAlive原始碼淺析MQQT協議Golang原始碼
- MQTT協議 -- 訊息報文格式MQQT協議
- MQTT物聯網通訊協議入門及Demo實現MQQT協議
- 時間同步協議NTP - 原理&實踐協議
- WebSocket原理與實踐(二)---WebSocket協議Web協議
- 車聯網場景中的 MQTT 協議MQQT協議
- 使用 EMQX 接入 MQTT-SN 協議裝置MQQT協議
- MQTT系列實踐二 在EGG中使用mqttMQQT
- HLS直播協議在B站的實踐協議
- 21_MQTT協議_客戶端和服務端MQQT協議客戶端服務端
- 物聯網協議之MQTT原始碼分析(二)協議MQQT原始碼
- 物聯網協議之MQTT原始碼分析(一)協議MQQT原始碼
- MQTT協議簡介及百度雲物接入loT-MQTT測試MQQT協議
- MOSN 多協議擴充套件開發實踐協議套件
- MQTT協議與阿里雲IoT物聯網平臺MQQT協議阿里
- MQTT 協議是個啥?這篇文章告訴你!MQQT協議
- DDS協議解讀及測試開發實踐協議
- Netty實現高效能IOT伺服器(Groza)之手撕MQTT協議篇上Netty伺服器MQQT協議
- MQTT協議從服務端到客戶端詳解MQQT協議服務端客戶端
- 大型網站的HTTPS實踐(一)——HTTPS協議和原理網站HTTP協議
- MQTT 協議在石油行業資料採集中的應用MQQT協議行業
- 【乾貨】超詳細!TPC7062封裝MQTT協議教程封裝MQQT協議
- 實用TCP協議(1):TCP 協議簡介TCP協議
- 實現 Raft 協議Raft協議
- 物流網首選協議,關於 MQTT 你需要了解這些協議MQQT