MQTT

1.什么是MQTT

MQTT(消息隊列遙測傳輸)是一個基于客戶端-服務器的消息發(fā)布/訂閱傳輸協(xié)議。它工作在TCP/IP協(xié)議族上。MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點使它適用范圍非常廣泛。

2.MQTT應用現(xiàn)狀

因為是工作再TCP/IP協(xié)議族上的協(xié)議,所以MQTT的網(wǎng)絡環(huán)境是wifi、網(wǎng)線連接的局域網(wǎng)或者互聯(lián)網(wǎng)??蛻舳艘薪尤刖W(wǎng)絡建立TCP連接的能力。

MQTT適用于發(fā)布/訂閱場景,或者說生產(chǎn)/消費場景。

客戶端只要訂閱了主題,當主題消息發(fā)送到服務端時,服務端可以主動推送消息給客戶端。

發(fā)布功能可用于傳感器數(shù)據(jù)的采集。這種應用功能存在于設(shè)備監(jiān)聽、環(huán)境監(jiān)測、大數(shù)據(jù)分析。

訂閱功能可用于事件驅(qū)動的設(shè)備控制。這種應用功能存在于告警、設(shè)備聯(lián)動。

發(fā)布/訂閱這種邏輯易于理解,可理解為:如果設(shè)備A發(fā)生事件1,則設(shè)備B執(zhí)行事件2。即使非開發(fā)人員也能對多個客戶端進行編程控制,實現(xiàn)用戶場景內(nèi)的個性化、靈活多變的定制設(shè)備控制策略。

3.MQTT部署和使用示例

以Mosquitto為例,在linux系統(tǒng)中部署測試:

(1)官網(wǎng)下載源碼包mosquitto-1.6.8.tar.gz (之后的版本缺少cjson依賴,比較麻煩)

(2)解壓到/usr/local路徑下

(3)安裝依賴包

yum install gcc gcc-c++ libstdc++-devel yum install openssl-devel -y yum install c-ares-devel -y yum install uuid-devel -y yum install libuuid-devel -y

(4)增加用戶

adduser mosquitto

(5)在mosquitto路徑下執(zhí)行

make && make install

(6)進入/etc/mosquitto,執(zhí)行

cp mosquitto.conf.example mosquitto.conf

(7)啟動mosquitto

mosquitto -d -c /etc/mosquitto/mosquitto.conf

(8)新開一個shell窗口,訂閱主題

mosquitto_sub -i "sub" -v -h 192.168.110.68 -p 9000 -t "test" mosquitto_sub -i "sub" -v -h 192.168.2.102 -p 9000 -t "test" mosquitto_sub -i "sub" -v -h 192.168.2.102 -p 9000 -t "system/alert" -u "admin" -P "admin1111"

(9)新開一個shell窗口,發(fā)布內(nèi)容,如果訂閱窗口收到消息,則mqtt部署成功

mosquitto_pub -i "pub" -h 192.168.110.68 -p 9000 -t "test" -m "123" mosquitto_pub -i "pub" -h 192.168.2.102 -p 9000 -t "test" -m "123" mosquitto_pub -i "pub" -h 192.168.2.102 -p 9000 -t "system/alert" -m "客戶端水位告警" -u "admin" -P "admin1111"

4.基于Netty的MQTT服務端實現(xiàn)-kmqtt

主要是實現(xiàn)MQTT協(xié)議14個數(shù)據(jù)包的解析,以及客戶端與服務端的交互時序,外加擴展功能。
相關(guān)鏈接:
 -知識:http://www.itdecent.cn/p/e15608d26931
 -源碼:https://gitee.com/kool2017/kmqtt
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容