1.MQTT概述
Mqtt(消息隊(duì)列遙測(cè)傳輸)是一種基于發(fā)布/訂閱模式的“輕量級(jí)”通信協(xié)議,建立在TCP/IP協(xié)議之上,由IBM于1999年發(fā)布。MQTT最大的優(yōu)點(diǎn)是可以為連接代碼少、帶寬有限的遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的音頻服務(wù)。作為一種低開銷、低帶寬的即時(shí)通訊協(xié)議,它已經(jīng)廣泛應(yīng)用于物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等領(lǐng)域。
MQTT是一種基于客戶機(jī)-服務(wù)器的音頻發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議輕量級(jí)、簡(jiǎn)單、開放、易于實(shí)現(xiàn),使其具有廣泛的適用性。在許多情況下,包括有限的環(huán)境,如機(jī)器對(duì)機(jī)器(M2M)通信和物聯(lián)網(wǎng)。它已被廣泛用于通過(guò)衛(wèi)星連接進(jìn)行通信的傳感器、偶然撥號(hào)的醫(yī)療設(shè)備、智能家居和一些小型化設(shè)備。
2014年發(fā)布的MQTT v3.1.1是當(dāng)前MQTT協(xié)議的最新版本。除了標(biāo)準(zhǔn)版,還有MQTT-SN的簡(jiǎn)化版,主要針對(duì)嵌入式設(shè)備,一般工作在TCP/IP網(wǎng)絡(luò),比如ZigBee。
2.MQTT規(guī)劃標(biāo)準(zhǔn)
由于物聯(lián)網(wǎng)的環(huán)境非常特殊,MQTT遵循以下規(guī)劃指南:
(1)精簡(jiǎn),不增加可有可無(wú)的職能;
(2)發(fā)布/訂閱(Pub/Sub)模式,方便傳感器之間的音頻傳輸;
(3)允許用戶以零運(yùn)營(yíng)和維護(hù)成本動(dòng)態(tài)創(chuàng)建主題;
(4)最小化傳輸量,提高傳輸功率;
(5)考慮低帶寬、高延遲、網(wǎng)絡(luò)不穩(wěn)定等因素;
(6)支持連續(xù)會(huì)話控制;
(7)明白客戶端計(jì)算能力可能很低;
(8)供應(yīng)和服務(wù)質(zhì)量管理;
(9)假設(shè)數(shù)據(jù)未知,不堅(jiān)持?jǐn)?shù)據(jù)傳輸?shù)念愋秃湍J剑3朱`活性。
3.MQTT特性
MQTT協(xié)議是為低帶寬和不可靠網(wǎng)絡(luò)中遠(yuǎn)程傳感器和控制設(shè)備之間的通信而規(guī)劃的協(xié)議。它具有以下主要特征:
(1)使用發(fā)布/訂閱音頻模式來(lái)提供一對(duì)多的音頻發(fā)布和應(yīng)用程序的解耦。
這個(gè)和XMPP很像,但是MQTT的信息冗余度遠(yuǎn)遠(yuǎn)小于XMPP,因?yàn)閄MPP是用XML模式來(lái)傳輸數(shù)據(jù)的。
(2)音頻傳輸屏蔽負(fù)載內(nèi)容。
(3)利用TCP/IP提供網(wǎng)絡(luò)連接。
主流的MQTT是根據(jù)TCP連接推送數(shù)據(jù)的,但是也有一個(gè)版本是根據(jù)UDP的,叫做MQTT-SN。這兩個(gè)版本的優(yōu)劣自然是不同的,因?yàn)殒溄臃绞讲煌?/p>
(4)音頻出版服務(wù)質(zhì)量有三種:
“最多一次”,音頻發(fā)布完全取決于底層TCP/IP網(wǎng)絡(luò)。會(huì)攻擊音頻丟失或重復(fù)。這個(gè)級(jí)別可以用于以下情況:環(huán)境傳感器數(shù)據(jù)丟失一次也沒(méi)關(guān)系,因?yàn)楹芸鞎?huì)有第二次傳輸。這個(gè)方法是第一個(gè)推送普通應(yīng)用的。如果您的智能設(shè)備在音頻推送過(guò)程中沒(méi)有連接到互聯(lián)網(wǎng),并且過(guò)去沒(méi)有接收到推送,則在再次連接到互聯(lián)網(wǎng)后將不會(huì)接收到推送。
“至少一次”,以確保音頻的到達(dá),但音頻可能會(huì)重復(fù)出現(xiàn)。
“就一次”,保證消息到達(dá)一次。在一些有嚴(yán)格要求的計(jì)費(fèi)系統(tǒng)中,可以應(yīng)用這個(gè)級(jí)別。在計(jì)費(fèi)系統(tǒng)中,重復(fù)或丟失音頻將導(dǎo)致不正確的結(jié)果。這種最高質(zhì)量的音頻發(fā)布服務(wù)也可以用于推送即時(shí)消息應(yīng)用程序,確保用戶只接收一次。
(5)傳輸小,開銷低(定長(zhǎng)頭2字節(jié)),協(xié)議通信最小化,減少網(wǎng)絡(luò)流量。
這也是為什么介紹中說(shuō)非常適合“物聯(lián)網(wǎng)領(lǐng)域的傳感器與服務(wù)器之間的通信和信息采集”。要知道嵌入式設(shè)備的計(jì)算能力和帶寬都比較薄,用這個(gè)協(xié)議傳輸音頻是再合適不過(guò)了。
(6)利用遺囑和遺囑的特點(diǎn)通知客戶異常中斷的機(jī)制。
Last Will:遺言機(jī)制,用于通知同一主題下的其他設(shè)備,發(fā)送遺言的設(shè)備已斷開連接。
遺囑:遺言的機(jī)制,作用類似于遺囑。
4.MQTT協(xié)議原理
4.1 MQTT協(xié)議的實(shí)現(xiàn)方法
MQTT協(xié)議的實(shí)現(xiàn)需要完成客戶端和服務(wù)器之間的通信。在通信過(guò)程中,MQTT協(xié)議中有三個(gè)身份:發(fā)布、代理和訂閱。其中,音頻發(fā)布者和訂閱者都是客戶端,音頻代理是服務(wù)器,音頻發(fā)布者可以同時(shí)是訂閱者。
MQTT傳輸?shù)囊纛l分為兩部分:主題和有效負(fù)載:
(1)話題,可以理解為音頻的類型,在訂閱者訂閱后,將接收到該話題的音頻有效載荷;
(2)有效載荷,可以理解為音頻的內(nèi)容,是指用戶要使用的特定內(nèi)容。
4.2音頻的網(wǎng)絡(luò)傳輸和應(yīng)用
MQTT將構(gòu)建底層網(wǎng)絡(luò)傳輸:它將建立客戶端和服務(wù)器之間的連接,并在它們之間提供有序、無(wú)損和省字的雙向傳輸。
當(dāng)應(yīng)用程序數(shù)據(jù)通過(guò)MQTT網(wǎng)絡(luò)發(fā)送時(shí),MQTT會(huì)將相關(guān)的服務(wù)質(zhì)量與主題相關(guān)聯(lián)。
430萬(wàn)噸客戶端
使用MQTT協(xié)議的應(yīng)用程序或設(shè)備總是與服務(wù)器建立網(wǎng)絡(luò)連接??蛻艨梢?
(一)發(fā)布其他客戶可以訂閱的信息;
(2)訂閱其他客戶端發(fā)布的音頻;
(3)退訂或刪除應(yīng)用的音頻;
(4)與服務(wù)器斷開連接。
4.4 MQTT服務(wù)器
MQTT服務(wù)器被稱為“音頻代理”,它可以是一個(gè)應(yīng)用程序或設(shè)備。它位于音頻發(fā)布者和訂閱者之間,可以:
(1)接受客戶的網(wǎng)絡(luò)連接;
(2)接受客戶發(fā)布的申請(qǐng)信息;
(3)處理客戶的訂閱和退訂請(qǐng)求;
(4)將應(yīng)用音頻轉(zhuǎn)發(fā)給訂閱的客戶。
4.5 MQTT協(xié)議中的訂閱、主題和會(huì)話
(1)訂閱(Subion)
訂閱包括主題過(guò)濾和最大服務(wù)質(zhì)量。訂閱與會(huì)話相關(guān)聯(lián)。一個(gè)會(huì)話可以包含多個(gè)訂閱。每個(gè)會(huì)話中的每個(gè)訂閱都有不同的主題選取器。
(2)會(huì)期(會(huì)期)
每個(gè)客戶端與服務(wù)器連接后,就是一個(gè)會(huì)話,客戶端和服務(wù)器之間有一個(gè)情境交互。會(huì)話存在于一個(gè)網(wǎng)絡(luò)之間,或者它們可以通過(guò)幾個(gè)連續(xù)的網(wǎng)絡(luò)連接在客戶端和服務(wù)器之間。
(3)主簽名(主題名)
連接到與服務(wù)器訂閱相匹配的應(yīng)用程序音頻的標(biāo)簽。服務(wù)器將向訂閱匹配標(biāo)簽的每個(gè)客戶端發(fā)送音頻。
(4)主題過(guò)濾器
在訂閱表達(dá)式中使用的主簽名通配符選擇器指示訂閱匹配多個(gè)主題。
(5)載荷(有效載荷)
音頻用戶實(shí)際收到的內(nèi)容。
4.6 MQTT協(xié)議中的措施
MQTT協(xié)議中間邊界表示一些方法(也稱為動(dòng)作)來(lái)指示在某些資源上執(zhí)行的操作。根據(jù)服務(wù)器的實(shí)現(xiàn),該資源可以表示預(yù)先存在的數(shù)據(jù)或動(dòng)態(tài)生成數(shù)據(jù)。一般來(lái)說(shuō),資源是指服務(wù)器上的文件或輸出。第一個(gè)措施是:
1)連接.等待與服務(wù)器的連接。
2)斷開連接。等待MQTT客戶端完成作業(yè),并從服務(wù)器斷開TCP/IP會(huì)話。
3)訂閱。正在等待訂閱完成。
4)取消訂閱.等待服務(wù)器撤銷客戶端的一個(gè)或多個(gè)主題訂閱。
5)出版.MQTT客戶端發(fā)送音頻請(qǐng)求,發(fā)送后返回應(yīng)用線程。
1.《mqtt協(xié)議 MQTT是什么 一文詳解MQTT協(xié)議》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《mqtt協(xié)議 MQTT是什么 一文詳解MQTT協(xié)議》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/guonei/641774.html