1、接觸的緣由html
公司最近要求接手關於系統集成道閘的部分,其中系統和第三方系統是經過mqtt進行交互的。因此提早了解一下mqtt的基礎概念。java
2、mqtt的基本概念windows
1. mqtt的定義設計模式
Message Queuing Telemetry Transport,消息隊列遙測傳輸協議。它是基於tcp/ip協議的,同時它的設計模式是採用的發佈/訂閱模式。服務器
2.mqtt協議中的成員:發佈者、代理和訂閱者。tcp
(1)發佈者:發佈者能夠發佈信息給其它客戶端(訂閱者)訂閱,它發佈的一個主題消息能夠被訂閱屢次。工具
(2)代理:代理又稱爲服務器,能夠接受來自發布者或訂閱者的鏈接,同時可以處理訂閱者的訂閱或退訂請求,還可以將發佈者發佈的消息推送給訂閱者。測試
(3)訂閱者:可以接受來自發布者發佈的信息,可以退訂。ui
3.經常使用概念spa
(1)訂閱:訂閱包含主題篩選器(Topic Filter)和服務質量(QoS)。訂閱能夠與會話關聯,一個會話能夠關聯多個訂閱。
(2)會話:客戶端與服務器創建鏈接就是一個會話。
(3)主題:消息的類型,訂閱者經過訂閱的主題接受發佈者發佈的消息。
(4)負載:訂閱者接收到的消息。
(5)服務質量:發佈消息的質量,保證消息傳遞的次數。
a.至多一次:只發送一次,消息可能會丟失,在傳感器傳輸數據時,數據會定時刷新發送,數據的丟失不是那麼的重要,可使用該服務質量。
b.至少一次:保證訂閱者可以接收到發送的消息,這種狀況下消息可能重複。
c.只有一次:確保訂閱者接收消息一次,不會重複也不會丟失。
3、安裝EMQ服務器
1.我使用的是windows 10版本的。點擊這裏進入下載頁面。
2.下載後解壓,進入解壓文件夾,在cmd中輸入bin\emqx.cmd start啓動服務器。
3.個人服務器是安裝在本地的,在Web中輸入127.0.0.1:18083能夠顯示控制檯。
4.客戶端測試工具-MQTTBox。
4、java測試訂閱發佈,在這裏就不細述,網上博客不少。
5、相關博客
https://www.runoob.com/w3cnote/mqtt-intro.html