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

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

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

3天內不再提示

什么是mqtt協議?MQTT支持幾種應用模式?

lilihe92 ? 來源:最后一個bug ? 2023-05-22 09:28 ? 次閱讀

最近項目中用到了MQTT,感覺挺優秀的一種協議,所以這里分享一些相關的知識。

1

什么是MQTT

MQTT是一種輕量級的消息傳輸協議,用于物聯網設備和應用程序之間的通信。其最初由IBM開發,現在已成為開放的OASIS標準。

該協議基于發布/訂閱模式(Publish/Subscribe Pattern),支持多種質量等級(Quality of Service,QoS),可以實現可靠的消息傳輸和傳輸后的可靠存儲。

其主要特點如下:

1. 輕量級和低帶寬:采用二進制編碼和可變長度編碼,使得消息頭的大小盡可能小,能夠在低帶寬環境下進行高效的數據傳輸。

2. 靈活和可擴展:支持多種消息發布/訂閱模式,能夠靈活地適應不同的應用場景。同時,MQTT協議還支持多種質量等級,使得消息傳輸的可靠性和效率能夠根據應用的需求進行調整。

3. 可靠性和安全性:支持消息的持久化和存儲,能夠保證消息的可靠傳輸和傳輸后的可靠存儲。同時,還支持加密和認證等安全機制,能夠保證消息的安全傳輸和處理。

4. 易于使用和實現:議規范簡單明了,易于理解和實現。還提供了多種客戶端庫和開發工具,方便快速地使用和集成該協議。

2

MQTT開源庫

1、paho-mqtt-c的開源的MQTT協議棧庫,Paho MQTT 是 Eclipse 實現的基于 MQTT 協議的客戶端。

2、uMQTT,uMQTT 軟件包是 RT-Thread 自主研發的,基于 MQTT 3.1.1 協議的客戶端實現。

3

MQTT協議的設計

MQTT的核心設計模式是發布/訂閱模式(Publish/Subscribe Pattern),它是一種消息傳遞模式,用于解耦消息的發送者和接收者之間的關系。

在MQTT中,發布/訂閱模式的實現包括以下幾個核心概念:

1. 主題(Topic):主題是MQTT中消息的標識符,用于指定消息的內容和接收者。主題由一個或多個主題等級(Topic Level)組成,主題等級之間用斜杠(/)分隔。

例如,topic/a/b/c就是一個由三個主題等級組成的主題。

2. 客戶端(Client):MQTT中的客戶端是指連接到MQTT代理服務器的設備或應用程序,它可以是發布者(Publisher)或訂閱者(Subscriber)。

3. 代理服務器(Broker):MQTT中的代理服務器是指負責接收、路由和轉發消息的中間件。代理服務器會維護一個或多個主題,客戶端可以向代理服務器發布消息或訂閱主題。

4. 發布者(Publisher):MQTT中的發布者是指發布消息的客戶端。發布者將消息發送到代理服務器,代理服務器會根據消息的主題將其路由到訂閱了相應主題的訂閱者。

5. 訂閱者(Subscriber):MQTT中的訂閱者是指訂閱主題的客戶端。訂閱者向代理服務器訂閱特定的主題,代理服務器會將訂閱者訂閱的主題和相關信息保存在訂閱列表中。當有新消息發布到訂閱者訂閱的主題時,代理服務器會將消息發送給訂閱者。

在MQTT的發布/訂閱模式中,發布者和訂閱者之間是解耦的,它們不需要知道對方的存在和身份,只需要知道相應的主題即可。

這種設計模式使得MQTT具有高度的靈活性和擴展性,能夠適應不同的應用場景和需求。同時,MQTT還支持多種質量等級,可以根據應用的需求選擇不同的質量等級,以實現消息傳輸的可靠性和效率。

4

幾種應用模式

MQTT支持多種消息發布/訂閱模式,常見的應用模式如下:

1. 點對點模式(Point-to-Point):在點對點模式下,MQTT客戶端直接連接到MQTT代理服務器,通過MQTT協議進行消息的傳輸。

這種模式適用于直接連接的物聯網設備和應用程序之間的通信,如傳感器控制器之間的通信。

2. 發布/訂閱模式(Publish/Subscribe):在發布/訂閱模式下,MQTT客戶端通過訂閱主題(Topic)來接收感興趣的消息,通過發布主題來發送消息。

這種模式適用于需要解耦消息發送者和接收者之間的關系的應用場景,如物聯網中的實時數據傳輸、遠程控制和狀態監測等。

3. 請求/響應模式(Request/Response):在請求/響應模式下,MQTT客戶端通過請求主題(Request Topic)向MQTT代理服務器發送請求消息,MQTT代理服務器將請求消息路由到相應的處理程序,并返回響應消息。

這種模式適用于需要請求和響應交互的應用場景,如物聯網中的遠程管理和控制等。

4. 點對多模式(Point-to-Multipoint):在點對多模式下,一個MQTT客戶端可以同時連接到多個MQTT代理服務器,通過MQTT協議進行消息的傳輸。

這種模式適用于需要同時連接多個MQTT代理服務器的應用場景,如物聯網中的分布式處理和數據存儲等。

5

簡單應用

下面以一個物聯網溫度監測系統為例,來說明MQTT的發布/訂閱模式:

假設物聯網溫度監測系統包括多個溫度傳感器和一個溫度數據中心,其中每個溫度傳感器都能夠實時采集溫度數據并將其發布到指定的主題上,溫度數據中心則訂閱了多個主題,能夠實時接收并處理溫度數據。

這個過程可以通過以下步驟來實現:

1. 溫度傳感器連接到MQTT代理服務器,并發布溫度數據到指定的主題上,例如topic/temperature。

2. 溫度數據中心連接到MQTT代理服務器,并訂閱溫度數據的主題,例如topic/temperature。

3. 當溫度傳感器發布新的溫度數據到主題topic/temperature時,MQTT代理服務器將會將這條消息路由到訂閱了該主題的溫度數據中心上。

4. 溫度數據中心收到新的溫度數據后,可以對數據進行處理和存儲,例如計算平均溫度、生成報表等等。

通過這種方式,MQTT的發布/訂閱模式實現了溫度傳感器和溫度數據中心之間的解耦,不需要知道對方的存在和身份,只需要知道相應的主題即可實現實時的數據傳輸和處理。






審核編輯:劉清

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

    關注

    48

    文章

    2854

    瀏覽量

    155314
  • RT-Thread
    +關注

    關注

    31

    文章

    1239

    瀏覽量

    39429
  • MQTT協議
    +關注

    關注

    0

    文章

    93

    瀏覽量

    5308

原文標題:一種輕量級的消息傳輸協議-MQTT

文章出處:【微信號:最后一個bug,微信公眾號:最后一個bug】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MQTT 協議開發入門

    一、簡述MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的"輕量級
    發表于 11-05 09:38

    MQTT 協議 開發入門

    ,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的"輕量級"通訊協議,該協議構建于TCP/IP協議
    發表于 11-07 15:51

    MQTT協議介紹與移植筆記

    # 硬件智能之 MQTT協議介紹與移植筆記(一)##MQTT是什么?MQTT(MessageQueuing Telemetry Transport Protocol)即全稱消息隊列遙感
    發表于 08-20 07:08

    MQTT是什么?MQTT協議的特點有哪些

    MQTT是什么?MQTT協議的特點有哪些?MQTT協議幾種消息發布服務質量啊?
    發表于 09-29 07:43

    MQTT協議的相關資料推薦

    支持,同樣的,在ApolloStudio中,這一標準協議也已被完整的集成在一起,使得ApolloStudio既可以作為MQTT Broker來提供MQTT數據交互中轉站,也可以作為
    發表于 12-13 06:42

    MQTT協議的相關資料分享

    前言搞智能家居就不得不說到網絡通信,因為我們需要通過各種終端去控制我們的智能家居設備,所以網絡通信這方面是必備的.而在市面上比較流行的網絡通訊協議就是MQTT通信協議.今天我們就簡單聊聊如何什么叫
    發表于 01-20 07:11

    玩轉mqtt協議的方法

    一過完年即將陷入一場惡戰之中,可能無暇在玩這么多東西了,趁著過年把之前一直想搞的mqtt協議給玩一玩 。簡單說一些mqtt協議MQTT(M
    發表于 02-16 06:48

    mqtt-v3.1.1版協議

    mqtt-v3.1.1版協議,英文版,時間2014.10.29,物聯網通信協議MQTT
    發表于 10-29 11:22 ?0次下載

    干貨:MQTT協議開發入門

    MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的輕量級通訊協議
    的頭像 發表于 10-25 09:16 ?3254次閱讀

    MQTT協議的主要特征是什么

    服務。因為MQTT協議具有重量輕,簡單,開放,容易實現的特點。這些特性使得它的應用范圍很廣。 MQTT協議的主要特征。 1.使用發布/訂閱信息模式
    發表于 05-13 15:00 ?2293次閱讀

    MQTT 5協議你知道多少?

    MQTT協議是當今世界上最流行、接受度最高的物聯網協議。自推出以來,MQTT協議在各行業應用廣泛。本文帶大家了解
    的頭像 發表于 02-23 13:14 ?726次閱讀

    智聯物聯分享之物聯網協議MQTT簡述,MQTT協議特點

    )基于客戶端/服務器的信息發布/訂閱的物聯網常用傳輸協議。1999年由開發商IBM發布,MQTT協議是輕量、簡單、開放和易于實現的,這些特點也使得MQTT
    的頭像 發表于 03-28 18:10 ?1155次閱讀
    智聯物聯分享之物聯網<b class='flag-5'>協議</b><b class='flag-5'>MQTT</b>簡述,<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>特點

    MQTT是什么 MQTT特點

    MQTT 是 Message Queuing Telemetry Transport 的縮寫,是一種輕量級的、基于發布/訂閱模式的物聯網通信協議。 它具有以下特點: ?簡單易用:MQTT
    的頭像 發表于 11-09 15:20 ?2139次閱讀

    什么是MQTTMQTT協議中的方法

    MQTT是一種輕量級消息傳遞協議,由IBM開發,于1999年首次發布。它使用發布/訂閱模式并在設備、服務器和應用程序之間轉換消息。
    的頭像 發表于 02-25 17:04 ?1127次閱讀
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>中的方法

    mqtt協議和tcp協議區別

    MQTT協議和TCP協議在設計和應用上存在以下主要區別: 1. 起源與設計:MQTT協議誕生于1999年互聯網初期,而TCP
    的頭像 發表于 04-01 09:15 ?1365次閱讀