版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
mqtt--協(xié)議mqtt--協(xié)議1大綱1、什么是mqtt協(xié)議7、主題3、
mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱1、什么是mqtt協(xié)議7、主題3、
mqtt特性4、MQ什么是MQTT協(xié)議MQTT是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。作為一種低開(kāi)銷、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。MQTT是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過(guò)衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。2014年發(fā)布的MQTTv3.1.1是當(dāng)前MQTT協(xié)議的最新版本。除標(biāo)準(zhǔn)版外,還有一個(gè)簡(jiǎn)化版MQTT-SN,該協(xié)議主要針對(duì)嵌入式設(shè)備。什么是MQTT協(xié)議MQTT是一種基于發(fā)布/訂閱(publis3大綱2、物聯(lián)網(wǎng)協(xié)議有哪些7、主題3、
mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱2、物聯(lián)網(wǎng)協(xié)議有哪些7、主題3、
mqtt特性4、MQT4四大協(xié)議的基本介紹四大協(xié)議的基本介紹5大綱3、mqtt特性7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱3、mqtt特性7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些4、MQTT6MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議,它具有以下主要的幾項(xiàng)特性:(1)使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合。這一點(diǎn)很類似于XMPP,但是MQTT的信息冗余遠(yuǎn)小于XMPP,,因?yàn)閄MPP使用XML格式文本來(lái)傳遞數(shù)據(jù)。(2)對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸。(3)使用TCP/IP提供網(wǎng)絡(luò)連接。主流的MQTT是基于TCP連接進(jìn)行數(shù)據(jù)推送的,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式,優(yōu)缺點(diǎn)自然也就各有不同了。MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備7MQTT特性:(4)有三種消息發(fā)布服務(wù)質(zhì)量:“至多一次”,消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡(luò)。會(huì)發(fā)生消息丟失或重復(fù)。這一級(jí)別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無(wú)所謂,因?yàn)椴痪煤筮€會(huì)有第二次發(fā)送。這一種方式主要普通APP的推送,倘若你的智能設(shè)備在消息推送時(shí)未聯(lián)網(wǎng),推送過(guò)去沒(méi)收到,再次聯(lián)網(wǎng)也就收不到了?!爸辽僖淮巍保_保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生?!爸挥幸淮巍?,確保消息到達(dá)一次。在一些要求比較嚴(yán)格的計(jì)費(fèi)系統(tǒng)中,可以使用此級(jí)別。在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。這種最高質(zhì)量的消息發(fā)布服務(wù)還可以用于即時(shí)通訊類的APP的推送,確保用戶收到且只會(huì)收到一次。MQTT特性:(4)有三種消息發(fā)布服務(wù)質(zhì)量:8大家學(xué)習(xí)辛苦了,還是要堅(jiān)持繼續(xù)保持安靜大家學(xué)習(xí)辛苦了,還是要堅(jiān)持繼續(xù)保持安靜9MQTT特性:(5)小型傳輸,開(kāi)銷很小(固定長(zhǎng)度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。這就是為什么在介紹里說(shuō)它非常適合“在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信,信息的收集”,要知道嵌入式設(shè)備的運(yùn)算能力和帶寬都相對(duì)薄弱,使用這種協(xié)議來(lái)傳遞消息再適合不過(guò)了。(6)使用LastWill和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。LastWill:即遺言機(jī)制,用于通知同一主題下的其他設(shè)備發(fā)送遺言的設(shè)備已經(jīng)斷開(kāi)了連接。Testament:遺囑機(jī)制,功能類似于Last
Will。MQTT特性:(5)小型傳輸,開(kāi)銷很?。ü潭ㄩL(zhǎng)度的頭部是2字10大綱4、MQTT協(xié)議原理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱4、MQTT協(xié)議原理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mq11MQTT協(xié)議原理MQTT協(xié)議原理12MQTT協(xié)議原理-協(xié)議實(shí)現(xiàn)方式實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過(guò)程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負(fù)載(payload)兩部分:(1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會(huì)收到該主題的消息內(nèi)容(payload);(2)payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。MQTT協(xié)議原理-協(xié)議實(shí)現(xiàn)方式實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服13MQTT協(xié)議原理-網(wǎng)絡(luò)傳輸與應(yīng)用消息MQTT會(huì)構(gòu)建底層網(wǎng)絡(luò)傳輸:它將建立客戶端到服務(wù)器的連接,提供兩者之間的一個(gè)有序的、無(wú)損的、基于字節(jié)流的雙向傳輸。當(dāng)應(yīng)用數(shù)據(jù)通過(guò)MQTT網(wǎng)絡(luò)發(fā)送時(shí),MQTT會(huì)把與之相關(guān)的服務(wù)質(zhì)量(QoS)和主題名(Topic)相關(guān)連。MQTT協(xié)議原理-網(wǎng)絡(luò)傳輸與應(yīng)用消息MQTT會(huì)構(gòu)建底層網(wǎng)絡(luò)傳14MQTT協(xié)議原理-客戶端一個(gè)使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接。客戶端可以:(1)發(fā)布其他客戶端可能會(huì)訂閱的信息;(2)訂閱其它客戶端發(fā)布的消息;(3)退訂或刪除應(yīng)用程序的消息;(4)斷開(kāi)與服務(wù)器連接。MQTT協(xié)議原理-客戶端一個(gè)使用MQTT協(xié)議的應(yīng)用程序或者設(shè)15MQTT協(xié)議原理-服務(wù)器MQTT服務(wù)器以稱為“消息代理”(Broker),可以是一個(gè)應(yīng)用程序或一臺(tái)設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:(1)接受來(lái)自客戶的網(wǎng)絡(luò)連接;(2)接受客戶發(fā)布的應(yīng)用信息;(3)處理來(lái)自客戶端的訂閱和退訂請(qǐng)求;(4)向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。MQTT協(xié)議原理-服務(wù)器MQTT服務(wù)器以稱為“消息代理”(B16MQTT協(xié)議原理-訂閱、主題、會(huì)話MQTT協(xié)議中定義了一些方法(也被稱為動(dòng)作),來(lái)于表示對(duì)確定資源所進(jìn)行操作。這個(gè)資源可以代表預(yù)先存在的數(shù)據(jù)或動(dòng)態(tài)生成數(shù)據(jù),這取決于服務(wù)器的實(shí)現(xiàn)。通常來(lái)說(shuō),資源指服務(wù)器上的文件或輸出。主要方法有:(1)Connect。等待與服務(wù)器建立連接。(2)Disconnect。等待MQTT客戶端完成所做的工作,并與服務(wù)器斷開(kāi)TCP/IP會(huì)話。(3)Subscribe。等待完成訂閱。(4)UnSubscribe。等待服務(wù)器取消客戶端的一個(gè)或多個(gè)topics訂閱。(5)Publish。MQTT客戶端發(fā)送消息請(qǐng)求,發(fā)送完成后返回應(yīng)用程序線程。MQTT協(xié)議原理-訂閱、主題、會(huì)話MQTT協(xié)議中定義了一些方17大綱5、MQTT協(xié)議數(shù)據(jù)包7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱5、MQTT協(xié)議數(shù)據(jù)包7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、m18MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)在MQTT協(xié)議中,一個(gè)MQTT數(shù)據(jù)包由:固定頭(Fixedheader)、可變頭(Variableheader)、消息體(payload)三部分構(gòu)成。MQTT數(shù)據(jù)包結(jié)構(gòu)如下:MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)在MQTT協(xié)議中,一個(gè)MQTT數(shù)據(jù)包由19固定頭(Fixedheader)第一個(gè)字節(jié):包括消息類型和標(biāo)識(shí)(DUP,QoSlevel,RETAIN)字段第二個(gè)字節(jié):(至少一個(gè)字節(jié))包括剩余的信息字段所有的數(shù)據(jù)排序規(guī)則是順序值越大越優(yōu)先。1個(gè)16bit的字母出現(xiàn)在最重要的字節(jié),后面是最不重要的字節(jié)。固定頭(Fixedheader)第一個(gè)字節(jié):包括消息類20
可變報(bào)頭Variableheader報(bào)文標(biāo)識(shí)符
可變報(bào)頭Variableheader報(bào)文標(biāo)識(shí)符21消息體MQTT控制報(bào)文在報(bào)文的最后部分包含一個(gè)有效載荷。對(duì)于PUBLISH來(lái)說(shuō)有效載荷就是應(yīng)用消息。以下是支持有效負(fù)載的協(xié)議。消息體MQTT控制報(bào)文在報(bào)文的最后部分包含一個(gè)有效載荷。對(duì)于22大綱6、發(fā)布/訂閱模式7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱6、發(fā)布/訂閱模式7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqt23發(fā)布與訂閱模式打個(gè)比方,你打電話給朋友,一直要等到朋友接電話了才能夠開(kāi)始交流,是一個(gè)典型的同步請(qǐng)求/回答的場(chǎng)景;而給一個(gè)好友郵件列表發(fā)電子郵件就不一樣,你發(fā)好電子郵件該干嘛干嘛,好友們到有空了去查看郵件就是了,是一個(gè)典型的異步發(fā)布/訂閱的場(chǎng)景。熟悉編程的同學(xué)一定非常熟悉這種設(shè)計(jì)模式了,因?yàn)樗鼛?lái)了這些好處:發(fā)布者與訂閱者不用了解彼此,只要認(rèn)識(shí)同一個(gè)消息代理即可。發(fā)布者和訂閱者不需要交互,發(fā)布者無(wú)需等待訂閱者確認(rèn)而導(dǎo)致鎖定。發(fā)布者和訂閱者不需要同時(shí)在線,可以自由選擇時(shí)間來(lái)消費(fèi)消息。發(fā)布與訂閱模式打個(gè)比方,你打電話給朋友,一直要等到朋友接電話24大綱7、主題6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱7、主題6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqt25主題與訂閱機(jī)制MQTT是通過(guò)主題對(duì)消息進(jìn)行分類的,本質(zhì)上就是一個(gè)UTF-8的字符串,不過(guò)可以通過(guò)反斜杠表示多個(gè)層級(jí)關(guān)系。主題并不需要?jiǎng)?chuàng)建,直接使用就是了。主題還可以通過(guò)通配符進(jìn)行過(guò)濾。其中,
層級(jí)數(shù)量沒(méi)有限制不能包含任何的下文中提到的特殊符號(hào)(/、+、#),必須至少包含一個(gè)字符
/A”
和
“A”
是不同的。“A”和“A/”是不同的層級(jí)分隔符
/只能匹配本級(jí)不能匹配上級(jí)。例如,“sport/+”
不匹配
“sport多層通配符#單層通配符+一個(gè)Subsribe請(qǐng)求
可訂閱多個(gè)
Topic(節(jié)省帶寬,多訂閱盡量用一次請(qǐng)求)。主題與訂閱機(jī)制MQTT是通過(guò)主題對(duì)消息進(jìn)行分類的,本質(zhì)上就26大綱8、服務(wù)質(zhì)量7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議6、發(fā)布/訂閱模式9、遺囑消息10、MQTT代理大綱8、服務(wù)質(zhì)量7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性27QoS0級(jí)別0:盡力而為。消息發(fā)送者會(huì)想盡辦法發(fā)送消息,但是遇到意外并不會(huì)重試。QoS0級(jí)別0:盡力而為。消息發(fā)送者會(huì)想盡辦法發(fā)送消息,但是28QoS1級(jí)別1:至少一次。消息接收者如果沒(méi)有知會(huì)或者知會(huì)本身丟失,消息發(fā)送者會(huì)再次發(fā)送以保證消息接收者至少會(huì)收到一次,當(dāng)然可能造成重復(fù)消息。QoS1級(jí)別1:至少一次。消息接收者如果沒(méi)有知會(huì)或者知會(huì)本身29QoS2級(jí)別2:恰好一次。保證這種語(yǔ)義肯待會(huì)減少并發(fā)或者增加延時(shí),不過(guò)丟失或者重復(fù)消息是不可接受的時(shí)候,級(jí)別2是最合適的。QoS2級(jí)別2:恰好一次。保證這種語(yǔ)義肯待會(huì)減少并發(fā)或者增加30大綱9、遺囑消息7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議6、發(fā)布/訂閱模式8、服務(wù)質(zhì)量10、MQTT代理大綱9、遺囑消息7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性31遺囑消息MQTT本身就是為信號(hào)不穩(wěn)定的網(wǎng)絡(luò)設(shè)計(jì)的,所以難免一些客戶端會(huì)無(wú)故的和Broker斷開(kāi)連接。
當(dāng)客戶端連接到Broker時(shí),可以指定LWT,Broker會(huì)定期檢測(cè)客戶端是否有異常。
當(dāng)客戶端異常掉線時(shí),Broker就往連接時(shí)指定的topic里推送當(dāng)時(shí)指定的LWT消息。當(dāng)客戶端斷開(kāi)連接時(shí),發(fā)送給相關(guān)的訂閱者的遺囑消息。以下情況下會(huì)發(fā)送WillMessage:服務(wù)端發(fā)生了I/O錯(cuò)誤或者網(wǎng)絡(luò)失??;客戶端在定義的心跳時(shí)期失聯(lián);客戶端在發(fā)送下線包之前關(guān)閉網(wǎng)絡(luò)連接;服務(wù)端在收到下線包之前關(guān)閉網(wǎng)絡(luò)連接。遺囑消息MQTT本身就是為信號(hào)不穩(wěn)定的網(wǎng)絡(luò)設(shè)計(jì)的,所以難免一32使用場(chǎng)景在客戶端A進(jìn)行連接時(shí)候,遺囑消息設(shè)定為”offline“,客戶端B訂閱這個(gè)遺囑主題。當(dāng)A異常斷開(kāi)時(shí),客戶端B會(huì)收到這個(gè)”offline“的遺囑消息,從而知道客戶端A離線了。使用場(chǎng)景在客戶端A進(jìn)行連接時(shí)候,遺囑消息設(shè)定為”offl33高級(jí)使用場(chǎng)景這里介紹一下如何將Retained消息與Will消息結(jié)合起來(lái)進(jìn)行使用??蛻舳薃遺囑消息設(shè)定為”offline“,該遺囑主題與一個(gè)普通發(fā)送狀態(tài)的主題設(shè)定成同一個(gè)A/status;當(dāng)客戶端A連接時(shí),向主題A/status發(fā)送“online”的Retained消息,其它客戶端訂閱主題A/status的時(shí)候,獲取Retained消息為“online”;當(dāng)客戶端A異常斷開(kāi)時(shí),系統(tǒng)自動(dòng)向主題A/status發(fā)送”offline“的消息,其它訂閱了此主題的客戶端會(huì)馬上收到”offline“消息;如果遺囑消息被設(shè)定了Retained的話,這時(shí)有新的訂閱A/status主題的客戶端上線的時(shí)候,獲取到的消息為“offline”。高級(jí)使用場(chǎng)景這里介紹一下如何將Retained消息與Wi34大綱10、MQTT代理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議6、發(fā)布/訂閱模式9、遺囑消息8、服務(wù)質(zhì)量大綱10、MQTT代理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqt3510、mqtt服務(wù)代理10、mqtt服務(wù)代理36mqtt--協(xié)議mqtt--協(xié)議37大綱1、什么是mqtt協(xié)議7、主題3、
mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱1、什么是mqtt協(xié)議7、主題3、
mqtt特性4、MQ什么是MQTT協(xié)議MQTT是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。作為一種低開(kāi)銷、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。MQTT是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過(guò)衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。2014年發(fā)布的MQTTv3.1.1是當(dāng)前MQTT協(xié)議的最新版本。除標(biāo)準(zhǔn)版外,還有一個(gè)簡(jiǎn)化版MQTT-SN,該協(xié)議主要針對(duì)嵌入式設(shè)備。什么是MQTT協(xié)議MQTT是一種基于發(fā)布/訂閱(publis39大綱2、物聯(lián)網(wǎng)協(xié)議有哪些7、主題3、
mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱2、物聯(lián)網(wǎng)協(xié)議有哪些7、主題3、
mqtt特性4、MQT40四大協(xié)議的基本介紹四大協(xié)議的基本介紹41大綱3、mqtt特性7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱3、mqtt特性7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些4、MQTT42MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議,它具有以下主要的幾項(xiàng)特性:(1)使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合。這一點(diǎn)很類似于XMPP,但是MQTT的信息冗余遠(yuǎn)小于XMPP,,因?yàn)閄MPP使用XML格式文本來(lái)傳遞數(shù)據(jù)。(2)對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸。(3)使用TCP/IP提供網(wǎng)絡(luò)連接。主流的MQTT是基于TCP連接進(jìn)行數(shù)據(jù)推送的,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式,優(yōu)缺點(diǎn)自然也就各有不同了。MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備43MQTT特性:(4)有三種消息發(fā)布服務(wù)質(zhì)量:“至多一次”,消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡(luò)。會(huì)發(fā)生消息丟失或重復(fù)。這一級(jí)別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無(wú)所謂,因?yàn)椴痪煤筮€會(huì)有第二次發(fā)送。這一種方式主要普通APP的推送,倘若你的智能設(shè)備在消息推送時(shí)未聯(lián)網(wǎng),推送過(guò)去沒(méi)收到,再次聯(lián)網(wǎng)也就收不到了?!爸辽僖淮巍?,確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生。“只有一次”,確保消息到達(dá)一次。在一些要求比較嚴(yán)格的計(jì)費(fèi)系統(tǒng)中,可以使用此級(jí)別。在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。這種最高質(zhì)量的消息發(fā)布服務(wù)還可以用于即時(shí)通訊類的APP的推送,確保用戶收到且只會(huì)收到一次。MQTT特性:(4)有三種消息發(fā)布服務(wù)質(zhì)量:44大家學(xué)習(xí)辛苦了,還是要堅(jiān)持繼續(xù)保持安靜大家學(xué)習(xí)辛苦了,還是要堅(jiān)持繼續(xù)保持安靜45MQTT特性:(5)小型傳輸,開(kāi)銷很小(固定長(zhǎng)度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。這就是為什么在介紹里說(shuō)它非常適合“在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信,信息的收集”,要知道嵌入式設(shè)備的運(yùn)算能力和帶寬都相對(duì)薄弱,使用這種協(xié)議來(lái)傳遞消息再適合不過(guò)了。(6)使用LastWill和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。LastWill:即遺言機(jī)制,用于通知同一主題下的其他設(shè)備發(fā)送遺言的設(shè)備已經(jīng)斷開(kāi)了連接。Testament:遺囑機(jī)制,功能類似于Last
Will。MQTT特性:(5)小型傳輸,開(kāi)銷很小(固定長(zhǎng)度的頭部是2字46大綱4、MQTT協(xié)議原理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱4、MQTT協(xié)議原理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mq47MQTT協(xié)議原理MQTT協(xié)議原理48MQTT協(xié)議原理-協(xié)議實(shí)現(xiàn)方式實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過(guò)程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負(fù)載(payload)兩部分:(1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會(huì)收到該主題的消息內(nèi)容(payload);(2)payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。MQTT協(xié)議原理-協(xié)議實(shí)現(xiàn)方式實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服49MQTT協(xié)議原理-網(wǎng)絡(luò)傳輸與應(yīng)用消息MQTT會(huì)構(gòu)建底層網(wǎng)絡(luò)傳輸:它將建立客戶端到服務(wù)器的連接,提供兩者之間的一個(gè)有序的、無(wú)損的、基于字節(jié)流的雙向傳輸。當(dāng)應(yīng)用數(shù)據(jù)通過(guò)MQTT網(wǎng)絡(luò)發(fā)送時(shí),MQTT會(huì)把與之相關(guān)的服務(wù)質(zhì)量(QoS)和主題名(Topic)相關(guān)連。MQTT協(xié)議原理-網(wǎng)絡(luò)傳輸與應(yīng)用消息MQTT會(huì)構(gòu)建底層網(wǎng)絡(luò)傳50MQTT協(xié)議原理-客戶端一個(gè)使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接??蛻舳丝梢裕海?)發(fā)布其他客戶端可能會(huì)訂閱的信息;(2)訂閱其它客戶端發(fā)布的消息;(3)退訂或刪除應(yīng)用程序的消息;(4)斷開(kāi)與服務(wù)器連接。MQTT協(xié)議原理-客戶端一個(gè)使用MQTT協(xié)議的應(yīng)用程序或者設(shè)51MQTT協(xié)議原理-服務(wù)器MQTT服務(wù)器以稱為“消息代理”(Broker),可以是一個(gè)應(yīng)用程序或一臺(tái)設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:(1)接受來(lái)自客戶的網(wǎng)絡(luò)連接;(2)接受客戶發(fā)布的應(yīng)用信息;(3)處理來(lái)自客戶端的訂閱和退訂請(qǐng)求;(4)向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。MQTT協(xié)議原理-服務(wù)器MQTT服務(wù)器以稱為“消息代理”(B52MQTT協(xié)議原理-訂閱、主題、會(huì)話MQTT協(xié)議中定義了一些方法(也被稱為動(dòng)作),來(lái)于表示對(duì)確定資源所進(jìn)行操作。這個(gè)資源可以代表預(yù)先存在的數(shù)據(jù)或動(dòng)態(tài)生成數(shù)據(jù),這取決于服務(wù)器的實(shí)現(xiàn)。通常來(lái)說(shuō),資源指服務(wù)器上的文件或輸出。主要方法有:(1)Connect。等待與服務(wù)器建立連接。(2)Disconnect。等待MQTT客戶端完成所做的工作,并與服務(wù)器斷開(kāi)TCP/IP會(huì)話。(3)Subscribe。等待完成訂閱。(4)UnSubscribe。等待服務(wù)器取消客戶端的一個(gè)或多個(gè)topics訂閱。(5)Publish。MQTT客戶端發(fā)送消息請(qǐng)求,發(fā)送完成后返回應(yīng)用程序線程。MQTT協(xié)議原理-訂閱、主題、會(huì)話MQTT協(xié)議中定義了一些方53大綱5、MQTT協(xié)議數(shù)據(jù)包7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理6、發(fā)布/訂閱模式1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱5、MQTT協(xié)議數(shù)據(jù)包7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、m54MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)在MQTT協(xié)議中,一個(gè)MQTT數(shù)據(jù)包由:固定頭(Fixedheader)、可變頭(Variableheader)、消息體(payload)三部分構(gòu)成。MQTT數(shù)據(jù)包結(jié)構(gòu)如下:MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)在MQTT協(xié)議中,一個(gè)MQTT數(shù)據(jù)包由55固定頭(Fixedheader)第一個(gè)字節(jié):包括消息類型和標(biāo)識(shí)(DUP,QoSlevel,RETAIN)字段第二個(gè)字節(jié):(至少一個(gè)字節(jié))包括剩余的信息字段所有的數(shù)據(jù)排序規(guī)則是順序值越大越優(yōu)先。1個(gè)16bit的字母出現(xiàn)在最重要的字節(jié),后面是最不重要的字節(jié)。固定頭(Fixedheader)第一個(gè)字節(jié):包括消息類56
可變報(bào)頭Variableheader報(bào)文標(biāo)識(shí)符
可變報(bào)頭Variableheader報(bào)文標(biāo)識(shí)符57消息體MQTT控制報(bào)文在報(bào)文的最后部分包含一個(gè)有效載荷。對(duì)于PUBLISH來(lái)說(shuō)有效載荷就是應(yīng)用消息。以下是支持有效負(fù)載的協(xié)議。消息體MQTT控制報(bào)文在報(bào)文的最后部分包含一個(gè)有效載荷。對(duì)于58大綱6、發(fā)布/訂閱模式7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱6、發(fā)布/訂閱模式7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqt59發(fā)布與訂閱模式打個(gè)比方,你打電話給朋友,一直要等到朋友接電話了才能夠開(kāi)始交流,是一個(gè)典型的同步請(qǐng)求/回答的場(chǎng)景;而給一個(gè)好友郵件列表發(fā)電子郵件就不一樣,你發(fā)好電子郵件該干嘛干嘛,好友們到有空了去查看郵件就是了,是一個(gè)典型的異步發(fā)布/訂閱的場(chǎng)景。熟悉編程的同學(xué)一定非常熟悉這種設(shè)計(jì)模式了,因?yàn)樗鼛?lái)了這些好處:發(fā)布者與訂閱者不用了解彼此,只要認(rèn)識(shí)同一個(gè)消息代理即可。發(fā)布者和訂閱者不需要交互,發(fā)布者無(wú)需等待訂閱者確認(rèn)而導(dǎo)致鎖定。發(fā)布者和訂閱者不需要同時(shí)在線,可以自由選擇時(shí)間來(lái)消費(fèi)消息。發(fā)布與訂閱模式打個(gè)比方,你打電話給朋友,一直要等到朋友接電話60大綱7、主題6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議8、服務(wù)質(zhì)量9、遺囑消息10、MQTT代理大綱7、主題6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqt61主題與訂閱機(jī)制MQTT是通過(guò)主題對(duì)消息進(jìn)行分類的,本質(zhì)上就是一個(gè)UTF-8的字符串,不過(guò)可以通過(guò)反斜杠表示多個(gè)層級(jí)關(guān)系。主題并不需要?jiǎng)?chuàng)建,直接使用就是了。主題還可以通過(guò)通配符進(jìn)行過(guò)濾。其中,
層級(jí)數(shù)量沒(méi)有限制不能包含任何的下文中提到的特殊符號(hào)(/、+、#),必須至少包含一個(gè)字符
/A”
和
“A”
是不同的?!癆”和“A/”是不同的層級(jí)分隔符
/只能匹配本級(jí)不能匹配上級(jí)。例如,“sport/+”
不匹配
“sport多層通配符#單層通配符+一個(gè)Subsribe請(qǐng)求
可訂閱多個(gè)
Topic(節(jié)省帶寬,多訂閱盡量用一次請(qǐng)求)。主題與訂閱機(jī)制MQTT是通過(guò)主題對(duì)消息進(jìn)行分類的,本質(zhì)上就62大綱8、服務(wù)質(zhì)量7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性4、MQTT協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是mqtt協(xié)議6、發(fā)布/訂閱模式9、遺囑消息10、MQTT代理大綱8、服務(wù)質(zhì)量7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性63QoS0級(jí)別0:盡力而為。消息發(fā)送者會(huì)想盡辦法發(fā)送消息,但是遇到意外并不會(huì)重試。QoS0級(jí)別0:盡力而為。消息發(fā)送者會(huì)想盡辦法發(fā)送消息,但是64QoS1級(jí)別1:至少一次。消息接收者如果沒(méi)有知會(huì)或者知會(huì)本身丟失,消息發(fā)送者會(huì)再次發(fā)送以保證消息接收者至少會(huì)收到一次,當(dāng)然可能造成重復(fù)消息。QoS1級(jí)別1:至少一次。消息接收者如果沒(méi)有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北師大版九年級(jí)歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年新科版八年級(jí)地理上冊(cè)月考試卷
- 2025年華師大新版一年級(jí)語(yǔ)文下冊(cè)階段測(cè)試試卷含答案
- 2025年人教A新版九年級(jí)歷史下冊(cè)月考試卷含答案
- 2025年粵教新版高三英語(yǔ)上冊(cè)月考試卷含答案
- 2025年北師大版選擇性必修3歷史下冊(cè)階段測(cè)試試卷含答案
- 公民教育理論與實(shí)踐知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋西華大學(xué)
- 2025年度定制衣柜設(shè)計(jì)制作合同樣本4篇
- 技術(shù)部合同范本(2篇)
- 房建工程監(jiān)理合同(2篇)
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級(jí)物理下冊(cè)
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測(cè)數(shù)學(xué)試卷(含解析)
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國(guó)式摔跤課程學(xué)生運(yùn)動(dòng)能力測(cè)評(píng)規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 高危妊娠的評(píng)估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論