日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一.MQTT簡介

MQTT是基于TCP/IP協(xié)議棧構(gòu)建的異步通信消息協(xié)議,是一種輕量級(jí)的發(fā)布/訂閱信息傳輸協(xié)議。MQTT在時(shí)間和空間上,將消息發(fā)送者與接受者分離,可以在不可靠的網(wǎng)絡(luò)環(huán)境中進(jìn)行擴(kuò)展。 適用于設(shè)備硬件存儲(chǔ)空間有限或網(wǎng)絡(luò)帶寬有限的場(chǎng)景。物聯(lián)網(wǎng)平臺(tái)支持設(shè)備使用MQTT協(xié)議接入MQTT的特點(diǎn)是可以保持長連接,具有一定的實(shí)時(shí)性,云端向設(shè)備端發(fā)送消息,設(shè)備端可以在最短的時(shí)間內(nèi)接收到并作出響應(yīng),所以MQTT更適合需要實(shí)時(shí)控制的場(chǎng)合,更適合執(zhí)行器。要保持長連接,那么就要時(shí)不時(shí)地發(fā)送心跳包,這就不會(huì)省電了。所以低功耗的場(chǎng)合并不適合MQTT。MQTT的長連接需要建立在TCP的基礎(chǔ)上,TCP協(xié)議的復(fù)雜性決定了對(duì)設(shè)備的要求是比較高一些的,相比UDP。

 

二.MQTT框架圖

 

MQTT協(xié)議使用總結(jié)

 

 

 

三.MQTT特點(diǎn)

MQTT協(xié)議是為大量計(jì)算能力有限,且工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議,它具有以下主要的幾項(xiàng)特性:

  • 使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合;
  • 對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸;
  • 使用 TCP/IP 提供網(wǎng)絡(luò)連接;
  • 有三種消息發(fā)布服務(wù)質(zhì)量:QoS(定閱等級(jí)),分0、1、2三個(gè)等級(jí),簡單來說是等級(jí)越高越可靠。

“至多一次”(QoS0):消息發(fā)布完全依賴底層 TCP/IP 網(wǎng)絡(luò)。會(huì)發(fā)生消息丟失或重復(fù)。這一級(jí)別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無所謂,因?yàn)椴痪煤筮€會(huì)有第二次發(fā)送。即是推送之后就完事了,至于對(duì)方有沒有收到,收到是什么,數(shù)據(jù)有沒有丟失,都不管。

“至少一次”(QoS1):確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生。即是你收到推送后,你還得返回一個(gè)puback給對(duì)方,告訴對(duì)方收到了,不然對(duì)方會(huì)以為你沒收到,隔一段時(shí)間后重新給你推送,直到你給對(duì)方返回一個(gè)Puback為止。

“只有一次”(QoS2):確保消息到達(dá)一次。這一級(jí)別可用于如下情況,在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。

MQTT協(xié)議使用總結(jié)

 

  • 小型傳輸,開銷很小(固定長度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量;
  • 使用 Last Will 和 Testament 特性通知有關(guān)各方客戶端異常中斷的機(jī)制。

Last Will:即遺言機(jī)制,用于通知同一主題下的其他設(shè)備發(fā)送遺言的設(shè)備已經(jīng)斷開了連接。 ? Testament:遺言機(jī)制,功能類似于Last Will。

MQTT客戶端可以注冊(cè)一個(gè)典型的遺愿遺囑消息,如果它們斷開連接,由代理發(fā)送。這些消息可以用于向訂閱者發(fā)出信號(hào),當(dāng)設(shè)備斷開連接時(shí)。

四.MQTT協(xié)議原理

1.MQTT協(xié)議實(shí)現(xiàn)框圖

 

MQTT協(xié)議使用總結(jié)

 

?

2.MQTT協(xié)議實(shí)現(xiàn)方式

實(shí)現(xiàn)MQTT協(xié)議需要:客戶端和服務(wù)器端MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。

MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負(fù)載(payload)兩部分

  • Topic:可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會(huì)收到該主題的消息內(nèi)容(payload)。
  • Payload:可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。

3.網(wǎng)絡(luò)傳輸與應(yīng)用消息

MQTT會(huì)構(gòu)建底層網(wǎng)絡(luò)傳輸:它將建立客戶端到服務(wù)器的連接,提供兩者之間的一個(gè)有序的、無損的、基于字節(jié)流的雙向傳輸。當(dāng)應(yīng)用數(shù)據(jù)通過MQTT網(wǎng)絡(luò)發(fā)送時(shí),MQTT會(huì)把與之相關(guān)的服務(wù)質(zhì)量(QoS)和主題名(Topic)相關(guān)連。

4.MQTT客戶端

一個(gè)使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接。客戶端可以:

  • 發(fā)布其他客戶端可能會(huì)訂閱的信息。
  • 訂閱其它客戶端發(fā)布的消息。
  • 退訂或刪除應(yīng)用程序的消息。
  • 斷開與服務(wù)器連接。

5.MQTT服務(wù)器

MQTT服務(wù)器以稱為“消息代理”(Broker),可以是一個(gè)應(yīng)用程序或一臺(tái)設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:

  • 接受來自客戶的網(wǎng)絡(luò)連接。
  • 接受客戶發(fā)布的應(yīng)用信息。
  • 處理來自客戶端的訂閱和退訂請(qǐng)求。
  • 向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。

6.MQTT協(xié)議中的訂閱、主題、會(huì)話

  • 訂閱(Subscription)

訂閱包含主題篩選器(Topic Filter)和最大服務(wù)質(zhì)量(QoS)。訂閱會(huì)與一個(gè)會(huì)話(Session)關(guān)聯(lián)。一個(gè)會(huì)話可以包含多個(gè)訂閱。每一個(gè)會(huì)話中的每個(gè)訂閱都有一個(gè)不同的主題篩選器。

  • 會(huì)話(Session)

每個(gè)客戶端與服務(wù)器建立連接后就是一個(gè)會(huì)話,客戶端和服務(wù)器之間有狀態(tài)交互。會(huì)話存在于一個(gè)網(wǎng)絡(luò)之間,也可能在客戶端和服務(wù)器之間跨越多個(gè)連續(xù)的網(wǎng)絡(luò)連接。

  • 主題名(Topic Name)

連接到一個(gè)應(yīng)用程序消息的標(biāo)簽,該標(biāo)簽與服務(wù)器的訂閱相匹配。服務(wù)器會(huì)將消息發(fā)送給訂閱所匹配標(biāo)簽的每個(gè)客戶端。

  • 主題篩選器(Topic Filter)

一個(gè)對(duì)主題名通配符篩選器,在訂閱表達(dá)式中使用,表示訂閱所匹配到的多個(gè)主題。

  • 負(fù)載(Payload)

消息訂閱者所具體接收的內(nèi)容。

7、 MQTT協(xié)議中的方法

MQTT協(xié)議中定義了一些方法(也被稱為動(dòng)作), 來于表示對(duì)確定資源所進(jìn)行操作。 這個(gè)資源可以代表預(yù)先存在的數(shù)據(jù)或動(dòng)態(tài)生成數(shù)據(jù),這取決于服務(wù)器的實(shí)現(xiàn)。通常來說,資源指服務(wù)器上的文件或輸出。

  • Connect:等待與服務(wù)器建立連接。
  • Disconnect:等待MQTT客戶端完成所做的工作,并與服務(wù)器斷開TCP/IP會(huì)話。
  • Subscribe:等待完成訂閱。
  • UnSubscribe:等待服務(wù)器取消客戶端的一個(gè)或多個(gè)topics訂閱。
  • Publish:MQTT客戶端發(fā)送消息請(qǐng)求,發(fā)送完成后返回應(yīng)用程序線程。

五.MQTT優(yōu)缺點(diǎn)

1.優(yōu)點(diǎn)

  • 適用于受限網(wǎng)絡(luò)的輕量級(jí)。
  • 靈活選擇具有給定功能的服務(wù)質(zhì)量。
  • 由OASIS技術(shù)委員會(huì)標(biāo)準(zhǔn)化。
  • 實(shí)施簡單快捷。
  • 協(xié)議簡潔輕巧,數(shù)據(jù)冗余量低。并且支持的設(shè)備從智能硬件到智能手機(jī)無所不包。

MQTT協(xié)議的優(yōu)勢(shì)是可以支持所有平臺(tái),它幾乎可以把所有的聯(lián)網(wǎng)物品和互聯(lián)網(wǎng)連接起來。特別適合于網(wǎng)絡(luò)代價(jià)昂貴,帶寬低、不可靠的環(huán)境。能在處理器和內(nèi)存資源有限的嵌入式設(shè)備中運(yùn)行。

2.缺點(diǎn)

  • 由于基于TCP的連接,功耗很高。
  • 缺乏加密。
  • 服務(wù)器端實(shí)現(xiàn)難度大,雖然已經(jīng)有了C++版本的服務(wù)端組件,但是并不開源,而且在推送

分享到:
標(biāo)簽:協(xié)議 MQTT
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定