一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是mqtt協(xié)議?MQTT支持幾種應(yīng)用模式?

lilihe92 ? 來(lái)源:最后一個(gè)bug ? 2023-05-22 09:28 ? 次閱讀

最近項(xiàng)目中用到了MQTT,感覺(jué)挺優(yōu)秀的一種協(xié)議,所以這里分享一些相關(guān)的知識(shí)。

1

什么是MQTT

MQTT是一種輕量級(jí)的消息傳輸協(xié)議,用于物聯(lián)網(wǎng)設(shè)備和應(yīng)用程序之間的通信。其最初由IBM開(kāi)發(fā),現(xiàn)在已成為開(kāi)放的OASIS標(biāo)準(zhǔn)。

該協(xié)議基于發(fā)布/訂閱模式(Publish/Subscribe Pattern),支持多種質(zhì)量等級(jí)(Quality of Service,QoS),可以實(shí)現(xiàn)可靠的消息傳輸和傳輸后的可靠存儲(chǔ)。

其主要特點(diǎn)如下:

1. 輕量級(jí)和低帶寬:采用二進(jìn)制編碼和可變長(zhǎng)度編碼,使得消息頭的大小盡可能小,能夠在低帶寬環(huán)境下進(jìn)行高效的數(shù)據(jù)傳輸。

2. 靈活和可擴(kuò)展:支持多種消息發(fā)布/訂閱模式,能夠靈活地適應(yīng)不同的應(yīng)用場(chǎng)景。同時(shí),MQTT協(xié)議還支持多種質(zhì)量等級(jí),使得消息傳輸?shù)目煽啃院托誓軌蚋鶕?jù)應(yīng)用的需求進(jìn)行調(diào)整。

3. 可靠性和安全性:支持消息的持久化和存儲(chǔ),能夠保證消息的可靠傳輸和傳輸后的可靠存儲(chǔ)。同時(shí),還支持加密和認(rèn)證等安全機(jī)制,能夠保證消息的安全傳輸和處理。

4. 易于使用和實(shí)現(xiàn):議規(guī)范簡(jiǎn)單明了,易于理解和實(shí)現(xiàn)。還提供了多種客戶端庫(kù)和開(kāi)發(fā)工具,方便快速地使用和集成該協(xié)議。

2

MQTT開(kāi)源庫(kù)

1、paho-mqtt-c的開(kāi)源的MQTT協(xié)議棧庫(kù),Paho MQTT 是 Eclipse 實(shí)現(xiàn)的基于 MQTT 協(xié)議的客戶端。

2、uMQTT,uMQTT 軟件包是 RT-Thread 自主研發(fā)的,基于 MQTT 3.1.1 協(xié)議的客戶端實(shí)現(xiàn)。

3

MQTT協(xié)議的設(shè)計(jì)

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

在MQTT中,發(fā)布/訂閱模式的實(shí)現(xiàn)包括以下幾個(gè)核心概念:

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

例如,topic/a/b/c就是一個(gè)由三個(gè)主題等級(jí)組成的主題。

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

3. 代理服務(wù)器(Broker):MQTT中的代理服務(wù)器是指負(fù)責(zé)接收、路由和轉(zhuǎn)發(fā)消息的中間件。代理服務(wù)器會(huì)維護(hù)一個(gè)或多個(gè)主題,客戶端可以向代理服務(wù)器發(fā)布消息或訂閱主題。

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

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

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

這種設(shè)計(jì)模式使得MQTT具有高度的靈活性和擴(kuò)展性,能夠適應(yīng)不同的應(yīng)用場(chǎng)景和需求。同時(shí),MQTT還支持多種質(zhì)量等級(jí),可以根據(jù)應(yīng)用的需求選擇不同的質(zhì)量等級(jí),以實(shí)現(xiàn)消息傳輸?shù)目煽啃院托省?/p>

4

幾種應(yīng)用模式

MQTT支持多種消息發(fā)布/訂閱模式,常見(jiàn)的應(yīng)用模式如下:

1. 點(diǎn)對(duì)點(diǎn)模式(Point-to-Point):在點(diǎn)對(duì)點(diǎn)模式下,MQTT客戶端直接連接到MQTT代理服務(wù)器,通過(guò)MQTT協(xié)議進(jìn)行消息的傳輸。

這種模式適用于直接連接的物聯(lián)網(wǎng)設(shè)備和應(yīng)用程序之間的通信,如傳感器控制器之間的通信。

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

這種模式適用于需要解耦消息發(fā)送者和接收者之間的關(guān)系的應(yīng)用場(chǎng)景,如物聯(lián)網(wǎng)中的實(shí)時(shí)數(shù)據(jù)傳輸、遠(yuǎn)程控制和狀態(tài)監(jiān)測(cè)等。

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

這種模式適用于需要請(qǐng)求和響應(yīng)交互的應(yīng)用場(chǎng)景,如物聯(lián)網(wǎng)中的遠(yuǎn)程管理和控制等。

4. 點(diǎn)對(duì)多模式(Point-to-Multipoint):在點(diǎn)對(duì)多模式下,一個(gè)MQTT客戶端可以同時(shí)連接到多個(gè)MQTT代理服務(wù)器,通過(guò)MQTT協(xié)議進(jìn)行消息的傳輸。

這種模式適用于需要同時(shí)連接多個(gè)MQTT代理服務(wù)器的應(yīng)用場(chǎng)景,如物聯(lián)網(wǎng)中的分布式處理和數(shù)據(jù)存儲(chǔ)等。

5

簡(jiǎn)單應(yīng)用

下面以一個(gè)物聯(lián)網(wǎng)溫度監(jiān)測(cè)系統(tǒng)為例,來(lái)說(shuō)明MQTT的發(fā)布/訂閱模式:

假設(shè)物聯(lián)網(wǎng)溫度監(jiān)測(cè)系統(tǒng)包括多個(gè)溫度傳感器和一個(gè)溫度數(shù)據(jù)中心,其中每個(gè)溫度傳感器都能夠?qū)崟r(shí)采集溫度數(shù)據(jù)并將其發(fā)布到指定的主題上,溫度數(shù)據(jù)中心則訂閱了多個(gè)主題,能夠?qū)崟r(shí)接收并處理溫度數(shù)據(jù)。

這個(gè)過(guò)程可以通過(guò)以下步驟來(lái)實(shí)現(xiàn):

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

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

3. 當(dāng)溫度傳感器發(fā)布新的溫度數(shù)據(jù)到主題topic/temperature時(shí),MQTT代理服務(wù)器將會(huì)將這條消息路由到訂閱了該主題的溫度數(shù)據(jù)中心上。

4. 溫度數(shù)據(jù)中心收到新的溫度數(shù)據(jù)后,可以對(duì)數(shù)據(jù)進(jìn)行處理和存儲(chǔ),例如計(jì)算平均溫度、生成報(bào)表等等。

通過(guò)這種方式,MQTT的發(fā)布/訂閱模式實(shí)現(xiàn)了溫度傳感器和溫度數(shù)據(jù)中心之間的解耦,不需要知道對(duì)方的存在和身份,只需要知道相應(yīng)的主題即可實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)傳輸和處理。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 溫度傳感器
    +關(guān)注

    關(guān)注

    48

    文章

    3009

    瀏覽量

    157590
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1348

    瀏覽量

    41376
  • MQTT協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    5741

原文標(biāo)題:一種輕量級(jí)的消息傳輸協(xié)議-MQTT

文章出處:【微信號(hào):最后一個(gè)bug,微信公眾號(hào):最后一個(gè)bug】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MQTT 協(xié)議開(kāi)發(fā)入門(mén)

    一、簡(jiǎn)述MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級(jí)
    發(fā)表于 11-05 09:38

    MQTT 協(xié)議 開(kāi)發(fā)入門(mén)

    ,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級(jí)"通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議
    發(fā)表于 11-07 15:51

    MQTT協(xié)議介紹與移植筆記

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

    MQTT是什么?MQTT協(xié)議的特點(diǎn)有哪些

    MQTT是什么?MQTT協(xié)議的特點(diǎn)有哪些?MQTT協(xié)議幾種消息發(fā)布服務(wù)質(zhì)量???
    發(fā)表于 09-29 07:43

    MQTT協(xié)議的相關(guān)資料推薦

    支持,同樣的,在ApolloStudio中,這一標(biāo)準(zhǔn)協(xié)議也已被完整的集成在一起,使得ApolloStudio既可以作為MQTT Broker來(lái)提供MQTT數(shù)據(jù)交互中轉(zhuǎn)站,也可以作為
    發(fā)表于 12-13 06:42

    MQTT協(xié)議的相關(guān)資料分享

    前言搞智能家居就不得不說(shuō)到網(wǎng)絡(luò)通信,因?yàn)槲覀冃枰ㄟ^(guò)各種終端去控制我們的智能家居設(shè)備,所以網(wǎng)絡(luò)通信這方面是必備的.而在市面上比較流行的網(wǎng)絡(luò)通訊協(xié)議就是MQTT通信協(xié)議.今天我們就簡(jiǎn)單聊聊如何什么叫
    發(fā)表于 01-20 07:11

    玩轉(zhuǎn)mqtt協(xié)議的方法

    一過(guò)完年即將陷入一場(chǎng)惡戰(zhàn)之中,可能無(wú)暇在玩這么多東西了,趁著過(guò)年把之前一直想搞的mqtt協(xié)議給玩一玩 。簡(jiǎn)單說(shuō)一些mqtt協(xié)議MQTT(M
    發(fā)表于 02-16 06:48

    mqtt-v3.1.1版協(xié)議

    mqtt-v3.1.1版協(xié)議,英文版,時(shí)間2014.10.29,物聯(lián)網(wǎng)通信協(xié)議MQTT
    發(fā)表于 10-29 11:22 ?0次下載

    干貨:MQTT協(xié)議開(kāi)發(fā)入門(mén)

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

    MQTT 5協(xié)議你知道多少?

    MQTT協(xié)議是當(dāng)今世界上最流行、接受度最高的物聯(lián)網(wǎng)協(xié)議。自推出以來(lái),MQTT協(xié)議在各行業(yè)應(yīng)用廣泛。本文帶大家了解
    的頭像 發(fā)表于 02-23 13:14 ?958次閱讀

    智聯(lián)物聯(lián)分享之物聯(lián)網(wǎng)協(xié)議MQTT簡(jiǎn)述,MQTT協(xié)議特點(diǎn)

    )基于客戶端/服務(wù)器的信息發(fā)布/訂閱的物聯(lián)網(wǎng)常用傳輸協(xié)議。1999年由開(kāi)發(fā)商IBM發(fā)布,MQTT協(xié)議是輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的,這些特點(diǎn)也使得MQTT
    的頭像 發(fā)表于 03-28 18:10 ?1482次閱讀
    智聯(lián)物聯(lián)分享之物聯(lián)網(wǎng)<b class='flag-5'>協(xié)議</b><b class='flag-5'>MQTT</b>簡(jiǎn)述,<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>特點(diǎn)

    MQTT是什么 MQTT特點(diǎn)

    MQTT 是 Message Queuing Telemetry Transport 的縮寫(xiě),是一種輕量級(jí)的、基于發(fā)布/訂閱模式的物聯(lián)網(wǎng)通信協(xié)議。 它具有以下特點(diǎn): ?簡(jiǎn)單易用:MQTT
    的頭像 發(fā)表于 11-09 15:20 ?2770次閱讀

    什么是MQTT?MQTT協(xié)議中的方法

    MQTT是一種輕量級(jí)消息傳遞協(xié)議,由IBM開(kāi)發(fā),于1999年首次發(fā)布。它使用發(fā)布/訂閱模式并在設(shè)備、服務(wù)器和應(yīng)用程序之間轉(zhuǎn)換消息。
    的頭像 發(fā)表于 02-25 17:04 ?1610次閱讀
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>中的方法

    mqtt協(xié)議和tcp協(xié)議區(qū)別

    MQTT協(xié)議和TCP協(xié)議在設(shè)計(jì)和應(yīng)用上存在以下主要區(qū)別: 1. 起源與設(shè)計(jì):MQTT協(xié)議誕生于1999年互聯(lián)網(wǎng)初期,而TCP
    的頭像 發(fā)表于 04-01 09:15 ?2092次閱讀

    基于MQTT協(xié)議的車(chē)云通信設(shè)計(jì)

    Queuing Telemetry Transport)是由OASIS發(fā)布的應(yīng)用層協(xié)議,采用訂閱/發(fā)布的通信模式,下層基于TCP/IP進(jìn)行傳輸。該標(biāo)準(zhǔn)在工業(yè)物聯(lián)網(wǎng)、車(chē)聯(lián)網(wǎng)等領(lǐng)域有廣泛應(yīng)用。 MQTT主要有以下
    的頭像 發(fā)表于 01-08 10:24 ?726次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>的車(chē)云通信設(shè)計(jì)