精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

物聯網協議MQTT協議的實現

汽車玩家 ? 來源:IT知識課堂 ? 作者:IT知識課堂 ? 2020-05-05 23:07 ? 次閱讀

概述

MQTT是IBM開發的一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支持所有平臺,幾乎可以把所有聯網物品和外部連接起來,被用來當做傳感器和制動器之間通信的橋梁。

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

使用發布/訂閱消息模式,提供一對多的消息發布

使用TCP/IP提供網絡連接

小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以降低網絡流量,傳輸的內容最大為256MB。

使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。

1.MQTT協議實現方式

MQTT系統由與服務器通信的客戶端組成,通常稱服務器為“代理Broker”。客戶可以是信息發布者Publish或訂閱者Subscribe。每個客戶端都可以連接到代理。

信息按主題層次結構組織。當發布者具有要分發的新數據時,它會將包含數據的控制消息發送到連接的代理。然后,代理將信息分發給已訂閱該主題的任何客戶端。發布者不需要有關于訂閱者數量或位置的任何數據,而訂閱者又不必配置有關發布者的任何數據。

MQTT傳輸的消息分為:主題(Topic)和負載(payload)兩部分: (1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload); (2)payload,可以理解為消息的內容,是指訂閱者具體要使用的內容。

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

2.1訂閱(Subscription)

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

2.2會話(Session)

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

2.3主題名(Topic Name)

連接到一個應用程序消息的標簽,該標簽與服務器的訂閱相匹配。服務器會將消息發送給訂閱所匹配標簽的每個客戶端。 系統主題:通過定義$SYS開頭的主題可以查看一些系統信息,如客戶端連接數量等, 詳細介紹:https://github.com/mqtt/mqtt.github.io/wiki/SYS-Topics

2.4主題篩選器(Topic Filter)

一個對主題名通配符篩選器,在訂閱表達式中使用,表示訂閱所匹配到的多個主題。 多級匹配符 # 單級匹配符 + 更多主題討論,請移步github wiki https://github.com/mqtt/mqtt.github.io/wiki/topic_format

2.5負載(Payload)

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

3.保留消息和最后遺囑

保留消息 Retained Messages

MQTT中,無論是發布還是訂閱都不會有任何觸發事件。 1個Topic只有唯一的retain消息,Broker會保存每個Topic的最后一條retain消息。 發布消息時把retain設置為true,即為保留信息。每個Client訂閱Topic后會立即讀取到retain消息。如果需要刪除retain消息,可以發布一個空的retain消息,因為每個新的retain消息都會覆蓋最后一個retain消息。

最后遺囑 Last Will & Testament

MQTT本身就是為信號不穩定的網絡設計的,所以難免一些客戶端會無故的和Broker斷開連接。 當客戶端連接到Broker時,可以指定LWT,Broker會定期檢測客戶端是否有異常。 當客戶端異常掉線時,Broker就往連接時指定的topic里推送當時指定的LWT消息。

4.消息服務質量

有三種消息發布服務質量qos(Quality of Service):

4.1“至多一次”

物聯網協議MQTT協議的實現

至多一次

消息發布完全依賴底層TCP/IP網絡。會發生消息丟失或重復。這一級別可用于如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因為不久后還會有第二次發送。

4.2“至少一次”

物聯網協議MQTT協議的實現

至少一次

PUBACK消息是對QoS級別為1的PUBLISH消息的響應.PUBACK消息由服務器發送以響應來自發布端的PUBLISH消息,訂閱端也會響應來自服務器的PUBLISH消息。當發布端收到PUBACK消息時,它會丟棄原始消息,因為它也被服務器接收(并記錄)。

如果一定時間內,發布端或服務器沒有收到PUBACK消息,則會進行重發。這種方式雖然確保了消息到達,但消息重復可能會發生。

4.3“只有一次”

物聯網協議MQTT協議的實現

只有一次

PUBREC消息是對QoS級別為2的PUBLISH消息的響應。它是QoS級別2協議流的第二個消息。 PUBREC消息由服務器響應來自發布端的PUBLISH消息,或訂閱端響應來自服務器的PUBLISH消息。發布端或服務器收到PUBREC消息時,會響應PUBREL消息。

PUBREL消息是從發布端對PUBREC的響應,或從服務器對訂閱端PUBREC消息的響應。 這是QoS 2協議流中第三個消息。當服務器從發布者收到PUBREL消息時,服務器會將PUBLISH消息發送到訂閱端,并發送PUBCOMP消息到發布端。 當訂閱端收到來自服務器的消息PUBREL時,使得消息可用于應用程序并將PUBCOMP消息發送到服務器。

PUBCOMP消息是服務器對來自發布端的PUBREL消息的響應,或訂閱者對來自服務器的PUBREL消息的響應。 它是QoS 2協議流程中的第四個也是最后一個消息。當發布端收到PUBCOMP消息時,它會丟棄原始消息,因為它已經將消息發給了服務器。

在一些要求比較嚴格的計費系統中,可以使用此級別。在計費系統中,消息重復或丟失會導致不正確的結果。這種最高質量的消息發布服務還可以用于即時通訊類的APP的推送,確保用戶收到且只會收到一次。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2903

    文章

    44285

    瀏覽量

    371355
  • MQTT
    +關注

    關注

    5

    文章

    649

    瀏覽量

    22435
收藏 人收藏

    評論

    相關推薦

    聯網行業中MQTT通信協議詳解以及使用

    聯網、小型設備、移動應用等方面有較廣泛的應用。 二 MQTT協議特點 MQTT是一個基于 客戶端-服務器 的消息發布/訂閱傳輸
    的頭像 發表于 09-20 17:08 ?1216次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網</b>行業中<b class='flag-5'>MQTT</b>通信<b class='flag-5'>協議</b>詳解以及使用

    MQTT協議網關的工作原理及功能特性

    聯網的快速發展中,MQTT協議網關作為連接物聯網設備與消息代理服務器的重要橋梁,扮演著不可或缺的角色。
    的頭像 發表于 09-18 17:00 ?400次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>網關的工作原理及功能特性

    鋇錸協議網關輕松實現Modbus轉MQTT協議

    Modbus是一種在工業自動化領域廣泛使用的通信協議,以其簡單性和可靠性而著稱。然而,隨著聯網技術的興起,傳統的Modbus協議需要與通信協議
    的頭像 發表于 07-23 15:51 ?309次閱讀
    鋇錸<b class='flag-5'>協議</b>網關輕松<b class='flag-5'>實現</b>Modbus轉<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>

    MQTT聯網平臺是什么

    。這種平臺允許設備通過MQTT協議與其他設備及云端服務進行通信,實現數據的上傳和下載,從而支持各種聯網應用和服務。
    的頭像 發表于 07-18 14:22 ?523次閱讀

    MQTT聯網網關是什么

    MQTT聯網網關是一種特殊的網關設備或軟件組件,主要在聯網(IoT)系統中使用,用于實現不同
    的頭像 發表于 07-18 14:17 ?475次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>物</b><b class='flag-5'>聯網</b>網關是什么

    一文了解聯網通信協議MQTT如何助力無線模塊廣泛連接

    引言:隨著聯網技術的飛速發展,無線模塊在連接各種智能設備、實現數據交互中扮演著至關重要的角色。為了有效滿 足聯網通信的多樣化需求,一種輕
    的頭像 發表于 06-07 16:10 ?1028次閱讀
    一文了解<b class='flag-5'>物</b><b class='flag-5'>聯網通信協議</b>之<b class='flag-5'>MQTT</b>如何助力無線模塊廣泛連接

    MQTT聯網平臺是什么?MQTT聯網平臺的功能

    ,易于實現,因此廣泛應用于受限的環境,如機器與機器的通信(M2M)以及物聯網環境(IoT)。 MQTT聯網平臺通過提供一種標準化的
    的頭像 發表于 04-01 10:20 ?681次閱讀

    mqtt協議和tcp協議區別

    帶寬和高延遲的網絡環境,尤其在聯網環境中表現優秀。而TCP協議是面向連接的、可靠的、基于字節流的傳輸層通信協議,主要用于互聯網和局域網中的
    的頭像 發表于 04-01 09:15 ?1551次閱讀

    MQTT聯網平臺實現設備連接與安全加密

    隨著工業聯網(IIoT)的不斷發展,越來越多的應用場景采用MQTT作為工業聯網通信的輕量級消息傳輸
    的頭像 發表于 03-19 10:25 ?587次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>物</b><b class='flag-5'>聯網</b>平臺<b class='flag-5'>實現</b>設備連接與安全加密

    MQTT和Modbus的聯網網關協議的區別分析

    MQTT和Modbus的聯網網關協議區別分析 MQTT(Message Queuing Telemetry Transport)與Modbus是兩種廣泛應用在
    的頭像 發表于 03-18 16:50 ?765次閱讀
    <b class='flag-5'>MQTT</b>和Modbus的<b class='flag-5'>物</b><b class='flag-5'>聯網網關協議</b>的區別分析

    MQTT協議網關解決方案設計與實施

    的主要功能包括協議轉換、消息過濾、安全認證、負載均衡等,以確保消息的可靠傳輸和系統的穩定運行。隨著聯網技術的快速發展,MQTT協議作為一種
    的頭像 發表于 03-11 14:07 ?466次閱讀

    mqtt協議與終端監測設備結合

    mqtt協議與終端監測設備結合 摘要: MQTT是一個基于客戶端-服務器的消息發布/訂閱傳輸協議, 優點是輕量,簡單,開放和易于實現的,這樣
    的頭像 發表于 01-30 13:13 ?373次閱讀
    <b class='flag-5'>mqtt</b><b class='flag-5'>協議</b>與終端監測設備結合

    MQTT聯網平臺是什么?MQTT聯網平臺的功能有哪些

    ,易于實現,因此廣泛應用于受限的環境,如機器與機器的通信(M2M)以及物聯網環境(IoT)。 MQTT聯網平臺通過提供一種標準化的
    的頭像 發表于 01-24 09:23 ?1100次閱讀

    lwm2m協議MQTT協議有什么區別?怎么選擇?哪個更適合聯網

    LwM2M(Lightweight M2M)和MQTT(Message Queuing Telemetry Transport)是兩種不同的通信協議,它們在聯網領域有著不同的應用和特
    的頭像 發表于 01-07 10:20 ?674次閱讀

    MQTT和Modbus協議的區別

    兩種聯網補充協議:用于短距離設備連接的本地協議 Modbus 以及支持聯網進行全局通信的可擴
    的頭像 發表于 12-08 15:21 ?2763次閱讀
    <b class='flag-5'>MQTT</b>和Modbus<b class='flag-5'>協議</b>的區別