亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一.MQTT簡介

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

 

二.MQTT框架圖

 

MQTT協議使用總結

 

 

 

三.MQTT特點

MQTT協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:

  • 使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程序耦合;
  • 對負載內容屏蔽的消息傳輸;
  • 使用 TCP/IP 提供網絡連接;
  • 有三種消息發布服務質量:QoS(定閱等級),分0、1、2三個等級,簡單來說是等級越高越可靠。

“至多一次”(QoS0):消息發布完全依賴底層 TCP/IP 網絡。會發生消息丟失或重復。這一級別可用于如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因為不久后還會有第二次發送。即是推送之后就完事了,至于對方有沒有收到,收到是什么,數據有沒有丟失,都不管。

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

“只有一次”(QoS2):確保消息到達一次。這一級別可用于如下情況,在計費系統中,消息重復或丟失會導致不正確的結果。

MQTT協議使用總結

 

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

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

MQTT客戶端可以注冊一個典型的遺愿遺囑消息,如果它們斷開連接,由代理發送。這些消息可以用于向訂閱者發出信號,當設備斷開連接時。

四.MQTT協議原理

1.MQTT協議實現框圖

 

MQTT協議使用總結

 

?

2.MQTT協議實現方式

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

MQTT傳輸的消息分為:主題(Topic)和負載(payload)兩部分

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

3.網絡傳輸與應用消息

MQTT會構建底層網絡傳輸:它將建立客戶端到服務器的連接,提供兩者之間的一個有序的、無損的、基于字節流的雙向傳輸。當應用數據通過MQTT網絡發送時,MQTT會把與之相關的服務質量(QoS)和主題名(Topic)相關連。

4.MQTT客戶端

一個使用MQTT協議的應用程序或者設備,它總是建立到服務器的網絡連接。客戶端可以:

  • 發布其他客戶端可能會訂閱的信息。
  • 訂閱其它客戶端發布的消息。
  • 退訂或刪除應用程序的消息。
  • 斷開與服務器連接。

5.MQTT服務器

MQTT服務器以稱為“消息代理”(Broker),可以是一個應用程序或一臺設備。它是位于消息發布者和訂閱者之間,它可以:

  • 接受來自客戶的網絡連接。
  • 接受客戶發布的應用信息。
  • 處理來自客戶端的訂閱和退訂請求。
  • 向訂閱的客戶轉發應用程序消息。

6.MQTT協議中的訂閱、主題、會話

  • 訂閱(Subscription)

訂閱包含主題篩選器(Topic Filter)和最大服務質量(QoS)。訂閱會與一個會話(Session)關聯。一個會話可以包含多個訂閱。每一個會話中的每個訂閱都有一個不同的主題篩選器。

  • 會話(Session)

每個客戶端與服務器建立連接后就是一個會話,客戶端和服務器之間有狀態交互。會話存在于一個網絡之間,也可能在客戶端和服務器之間跨越多個連續的網絡連接。

  • 主題名(Topic Name)

連接到一個應用程序消息的標簽,該標簽與服務器的訂閱相匹配。服務器會將消息發送給訂閱所匹配標簽的每個客戶端。

  • 主題篩選器(Topic Filter)

一個對主題名通配符篩選器,在訂閱表達式中使用,表示訂閱所匹配到的多個主題。

  • 負載(Payload)

消息訂閱者所具體接收的內容。

7、 MQTT協議中的方法

MQTT協議中定義了一些方法(也被稱為動作), 來于表示對確定資源所進行操作。 這個資源可以代表預先存在的數據或動態生成數據,這取決于服務器的實現。通常來說,資源指服務器上的文件或輸出。

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

五.MQTT優缺點

1.優點

  • 適用于受限網絡的輕量級。
  • 靈活選擇具有給定功能的服務質量。
  • 由OASIS技術委員會標準化。
  • 實施簡單快捷。
  • 協議簡潔輕巧,數據冗余量低。并且支持的設備從智能硬件到智能手機無所不包。

MQTT協議的優勢是可以支持所有平臺,它幾乎可以把所有的聯網物品和互聯網連接起來。特別適合于網絡代價昂貴,帶寬低、不可靠的環境。能在處理器和內存資源有限的嵌入式設備中運行。

2.缺點

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

分享到:
標簽:協議 MQTT
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定