详介 MQTT 服务器的搭建与客户端连接
生活随笔
收集整理的這篇文章主要介紹了
详介 MQTT 服务器的搭建与客户端连接
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- 一、MQTT 協(xié)議簡介
- 二、使用 apollo 搭建 MQTT 服務(wù)器
- 三、使用 MQTT 客戶端創(chuàng)建連接
- 四、消息發(fā)布與訂閱的基本操作
- 五、總結(jié)
- 六、參考資料
本文內(nèi)容:學(xué)習(xí)和熟悉 MQTT 協(xié)議,在本機上安裝 MQTT 服務(wù)器和客戶端軟件,練習(xí)消息發(fā)布與訂閱,比如自定義一個天氣預(yù)報的消息主題(提示:可以利用課堂教學(xué)資料或網(wǎng)上資源)
一、MQTT 協(xié)議簡介
- MQTT( Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議 ),是一種基于發(fā)布/訂閱( publish/subscribe )模式的 “ 輕量級 ” 通訊協(xié)議,該協(xié)議構(gòu)建于 TCP/IP 協(xié)議上,由 IBM 在 1999 年發(fā)布。MQTT 最大優(yōu)點在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實時可靠的消息服務(wù)。作為一種低開銷、低帶寬占用的即時通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。
1)MQTT 的特點:
- MQTT 協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機器與機器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過衛(wèi)星鏈路通信傳感器、偶爾撥號的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。
- MQTT 協(xié)議當(dāng)前版本為,2014 年發(fā)布的 MQTT v3.1.1。除標(biāo)準(zhǔn)版外,還有一個簡化版 MQTT-SN,該協(xié)議主要針對嵌入式設(shè)備,這些設(shè)備一般工作于 TCP/IP 網(wǎng)絡(luò),如:ZigBee。
- MQTT 協(xié)議運行在 TCP/IP 或其他網(wǎng)絡(luò)協(xié)議,提供有序、無損、雙向連接。其特點包括:
- 1、使用的發(fā)布/訂閱消息模式,它提供了一對多消息分發(fā),以實現(xiàn)與應(yīng)用程序的解耦;
- 2、對負(fù)載內(nèi)容屏蔽的消息傳輸機制;
- 3、對傳輸消息有三種服務(wù)質(zhì)量(QoS):
——最多一次,這一級別會發(fā)生消息丟失或重復(fù),消息發(fā)布依賴于底層TCP/IP網(wǎng)絡(luò)。即:<=1;
——至多一次,這一級別會確保消息到達,但消息可能會重復(fù)。即:>=1;
——只有一次,確保消息只有一次到達。即:=1。在一些要求比較嚴(yán)格的計費系統(tǒng)中,可以使用此級別; - 4、數(shù)據(jù)傳輸和協(xié)議交換的最小化(協(xié)議頭部只有2字節(jié)),以減少網(wǎng)絡(luò)流量;
- 5、通知機制,異常中斷時通知傳輸雙方;
2)MQTT 協(xié)議原理
- 實現(xiàn)MQTT協(xié)議需要:客戶端和服務(wù)器端
- MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時是訂閱者。
- MQTT傳輸?shù)南⒎譃?#xff1a;主題(Topic)和負(fù)載(payload)兩部分
- Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內(nèi)容(payload)
- payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容
說明:更多信息了解請百度搜索:消息通信的利器-MQTT協(xié)議簡介及協(xié)議原理
二、使用 apollo 搭建 MQTT 服務(wù)器
1)配置 apollo
- 下載 apollo 鏈接:https://pan.baidu.com/s/1fwm0KnB7xG_JBna7nM-mpA
提取碼:vy47 - 解壓縮文件
- 配置 jdk(說明:如果之前已經(jīng)配置好,可以直接忽略,安裝版本不可過高,否則后面搭建不成功),參考博客:JDK安裝與環(huán)境變量配置
- 然后進入到 apollo 下面的 bin 文件夾下,并使用命令 apollo.cmd create mybroker(注:mybroker 是自己隨便取得一個名字),創(chuàng)建成功如下圖所示。
2)開啟 appllo 服務(wù)
- 使用 cmd 進入到 apache-apollo-1.7.1\bin\mybroker\bin 路徑下,運行命令 .\apollo-broker-service install 和 .\apollo-broker-service start 即可。
- 在服務(wù)中可以看到有這個 Apollo:mybroker 運行。
- 在瀏覽器中輸入 http://127.0.0.1:61680,進入 apollo 的登錄頁面。
- 第一次登錄輸入:Username=admin,Password=password 即可。
- 但是,第二次登陸的時候,就無法再次登錄。可以輸入:https://127.0.0.1:61681,進行再次登錄。
3)修改 ip 地址,以供局域網(wǎng)連接
- 查看自己電腦的 IP 是多少。
- 登錄 MQTT 服務(wù)器打開之后,選擇 configration 下選擇 apollo.xml 文件,修改 <host_name> 屬性為服務(wù)器 ip(192.168.0.2),<web_admin> 同步修改,以及 tcp 節(jié)點下將默認(rèn)的 tcp://0.0.0.0:61613 修改為服務(wù)器的 ip,以供局域網(wǎng)使用,點擊 Save 保存,即可在局域網(wǎng)內(nèi)使用服務(wù)器的 ip 登錄。
- 使用地址 http:\\192.168.0.2:61680 可以成功打開。
- 如果主機地址換了,可以依照上面的方法重新修改 apollo.xml 文件。
- 至此,MQTT 服務(wù)器搭建基本完成了。
三、使用 MQTT 客戶端創(chuàng)建連接
- 下載客戶端鏈接:https://pan.baidu.com/s/1egAsqFVHbrR7VMrzbr2AOw
提取碼:go0f - 解壓后,雙擊運行 paho.exe。
- 添加連接。
- 點擊 選項 ,勾選上登錄,并輸入用戶名和密碼
- 輸入服務(wù)器地址(剛剛的 apollo.xml 文件內(nèi)的),然后點擊 連接 ,即可連接成功。
- 服務(wù)器顯示連接的 IP 及端口號等信息。
四、消息發(fā)布與訂閱的基本操作
- 按照上述方法再額外建立一個連接(注:可以使用同一局域網(wǎng)的 PC 連接服務(wù)器,前提是安裝了客戶端,這里我沒有別的 PC ,就用本機額外建立了一個連接)。
- 我這里顯示的是:同一主機使用不同的端口連接了服務(wù)器。
客戶端 test1:訂閱 hello 主題
- 點擊 + 按鈕,添加一個主題,然后點擊 訂閱 即可(說明:由于并沒有 hello 主題發(fā)出,所以沒有收到消息,其它客戶端發(fā)布主題后,該客戶端會收到消息)。
客戶端 test2:發(fā)布 hello 主題
- 編輯 主題 和 消息 ,并點擊 發(fā)布 ,歷史記錄中顯示已發(fā)布。
- 由于客戶端 test1 已訂閱了 hello 主題,所以同時會收到該消息。
五、總結(jié)
- MQTT 使用起來十分的方便,在多個小型設(shè)備之間可以進行數(shù)據(jù)的傳輸,這篇文章只是對 MQTT 進行訂閱 \ 發(fā)送功能的簡介使用,并沒有對 MQTT 協(xié)議進行深入的了解,但是由于 MQTT 的輕便、可靠的使用,在未來的物聯(lián)網(wǎng)方面肯定有很大的促進作用,所以還是有必要去學(xué)習(xí)使用相關(guān)的操作、功能。
六、參考資料
1、MQTT服務(wù)器搭建以及構(gòu)建服務(wù)端和客戶端——Windows
2、Apollo MQTT在windows上面環(huán)境部署與連接測試
總結(jié)
以上是生活随笔為你收集整理的详介 MQTT 服务器的搭建与客户端连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端有用网站合集
- 下一篇: 项目流程(从立项到结项)