国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

精通 MQTT:消息隊(duì)列遙測(cè)傳輸指南!

上海晶珩電子科技有限公司 ? 2025-06-16 16:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

MQTT(消息隊(duì)列遙測(cè)傳輸)是一種輕量級(jí)消息協(xié)議,專為低帶寬、高延遲和不可靠的網(wǎng)絡(luò)環(huán)境設(shè)計(jì)。它廣泛應(yīng)用于物聯(lián)網(wǎng)IoT)應(yīng)用、消息系統(tǒng)以及實(shí)時(shí)數(shù)據(jù)通信領(lǐng)域。

本指南深入探討了 MQTT 的工作原理,解釋了其關(guān)鍵組件,并演示了如何使用 Python 實(shí)現(xiàn) MQTT 客戶端。

MQTT 代理

MQTT 系統(tǒng)的核心是代理,它負(fù)責(zé)管理客戶端之間的消息交換。

MQTT 中的客戶端

發(fā)布者(Publishers):向特定主題發(fā)送消息的設(shè)備或應(yīng)用程序。

訂閱者(Subscribers):監(jiān)聽(tīng)這些主題上的消息的設(shè)備或應(yīng)用程序。

代理確保發(fā)布者的消息能夠可靠地傳遞給相應(yīng)的訂閱者。

運(yùn)行本地 MQTT 代理

在本示例中,代理托管在本地(127.0.0.1),這意味著它與 MQTT 客戶端運(yùn)行在同一臺(tái)機(jī)器上。

代理在 Docker 容器中運(yùn)行,使用 Mosquitto MQTT 代理,并映射到 1883 端口。mosquitto.conf 文件用于配置,允許消息保留和持久化。

MQTT 代理的工作原理

1.代理在 1883 端口監(jiān)聽(tīng)傳入消息。

2.客戶端連接到代理。

3.客戶端向特定主題發(fā)布消息。

4.代理接收并處理消息。

5.代理將消息轉(zhuǎn)發(fā)給所有訂閱該主題的客戶端。

發(fā)布者和訂閱者

發(fā)布者

發(fā)布者向特定主題發(fā)送消息,代理隨后將這些消息分發(fā)給感興趣的客戶端。

訂閱者

訂閱者監(jiān)聽(tīng)特定主題上的消息,并在收到消息時(shí)進(jìn)行處理。

在 Python 中創(chuàng)建 MQTT 客戶端

Python 中的 Paho MQTT 庫(kù)允許創(chuàng)建可以發(fā)布和訂閱消息的 MQTT 客戶端。

創(chuàng)建 MQTT 客戶端

importpaho.mqtt.clientasmqttmqtt_client_1 = mqtt.Client( callback_api_version=mqtt.CallbackAPIVersion.VERSION2, client_id="myClient1", clean_session=True, userdata="Client 1", protocol=mqtt.MQTTv311, transport="tcp")

參數(shù)解釋

client_id="myClient1" → 為客戶端分配一個(gè)唯一標(biāo)識(shí)符。

clean_session=True → 如果為 True,客戶端斷開(kāi)連接時(shí)不會(huì)存儲(chǔ)會(huì)話數(shù)據(jù)。

protocol=mqtt.MQTTv311 → 指定 MQTT 版本為 3.1.1。

transport="tcp" → 使用 TCP 連接(也可以使用 WebSocket)。

連接到代理

mqtt_client_1.connect("127.0.0.1", port=1883, keepalive=240)

向主題發(fā)布消息

mqtt_client_1.publish("robotcell1/temperature", payload=25)

這將向主題 robotcell1/temperature 發(fā)送一條消息(25)。任何訂閱該主題的客戶端將立即收到此消息。

保留消息與非保留消息

保留消息(retain=True)

保留消息會(huì)持久化存儲(chǔ)在代理上,確保新訂閱者能立即收到最后一條消息。

mqtt_client_1.publish("robotcell1/temperature", payload=666, retain=True)

非保留消息(retain=False)

非保留消息僅在發(fā)送時(shí)被活動(dòng)訂閱者接收。

服務(wù)質(zhì)量(QoS)級(jí)別

MQTT 支持三種消息傳遞保證級(jí)別:

+-----------+-----------------------------------+| QOS | Guarantee |+-----------+-----------------------------------+| 0 | At most once (fire and forget) || 1 | At least once (may be duplicated) || 2 | Exactly once (highest reliability)|+-----------+-----------------------------------+

訂閱主題

all_messages = []defon_message(client, userdata, msg): print(f"Client:{userdata}| Topic:{msg.topic}| Message:{msg.payload}| Retained:{msg.retain}") all_messages.append(msg)mqtt_client_2 = mqtt.Client()mqtt_client_2.on_message = on_messagemqtt_client_2.connect("127.0.0.1", port=1883, keepalive=240)mqtt_client_2.subscribe("robotcell1/temperature", qos=0)mqtt_client_2.loop_start()

持久會(huì)話

默認(rèn)情況下,當(dāng) MQTT 客戶端斷開(kāi)連接時(shí),它會(huì)丟失所有訂閱。如果 clean_session=False,代理會(huì)記住:

客戶端的訂閱。

客戶端錯(cuò)過(guò)的任何 QoS 1 或 2 消息。

mqtt_client_1= mqtt.Client(client_id="myClient1", clean_session=False)

結(jié)論

MQTT 是一種強(qiáng)大且輕量級(jí)的實(shí)時(shí)消息協(xié)議。通過(guò)利用發(fā)布者、訂閱者、代理、QoS 級(jí)別和保留消息,您可以構(gòu)建一個(gè)適用于物聯(lián)網(wǎng)及其他領(lǐng)域的健壯消息系統(tǒng)。

原文地址:

https://medium.com/@loughliam/mastering-mqtt-a-guide-to-message-queuing-telemetry-transport-289c74b70777

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2942

    文章

    47414

    瀏覽量

    409122
  • 傳輸
    +關(guān)注

    關(guān)注

    0

    文章

    157

    瀏覽量

    28312
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    726

    瀏覽量

    24826
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】MQTT(消息隊(duì)列遙測(cè)傳輸

    MQTT 全稱為 Message Queuing Telemetry Transport(消息隊(duì)列遙測(cè)傳輸)是一種基于發(fā)布/訂閱范式的二進(jìn)制“輕量級(jí)”消息協(xié)議,由IB公司發(fā)布。針對(duì)于網(wǎng)
    發(fā)表于 12-21 20:07

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

    MQTT協(xié)議,以及基于百度云的MQTT協(xié)議使用.MQTTMQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)
    發(fā)表于 01-20 07:11

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

    Transport,消息隊(duì)列遙測(cè)傳輸)是IBM開(kāi)發(fā)的一個(gè)即時(shí)通訊協(xié)議,有可能成為物聯(lián)網(wǎng)的重要組成部分。該協(xié)議支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來(lái),被用來(lái)當(dāng)做傳感器和制動(dòng)器(比如通過(guò)Twitter讓...
    發(fā)表于 02-16 06:48

    怎樣用MQTT連接樹(shù)莓派IoT設(shè)備

    MQTT(消息隊(duì)列遙測(cè)傳輸)是一種輕量級(jí)消息傳遞協(xié)議,非常適合物聯(lián)網(wǎng)連接設(shè)備的通信。
    的頭像 發(fā)表于 08-02 09:15 ?3512次閱讀

    怎樣從中傳輸MQTT消息ESP8266/NodeMCU到運(yùn)行MQTT代理的樹(shù)莓派

    消息隊(duì)列遙測(cè)傳輸MQTT)是一種消息傳遞協(xié)議,可在任何具有Internet連接的設(shè)備上運(yùn)行,使其成為物聯(lián)網(wǎng)中最常用的協(xié)議之一項(xiàng)目。它被設(shè)計(jì)用于具有低帶寬限制的系統(tǒng),因此非常適用于家庭
    的頭像 發(fā)表于 07-30 09:31 ?6687次閱讀
    怎樣從中<b class='flag-5'>傳輸</b><b class='flag-5'>MQTT</b>消息ESP8266/NodeMCU到運(yùn)行<b class='flag-5'>MQTT</b>代理的樹(shù)莓派

    什么是MQTT 有哪些特點(diǎn)

    消息隊(duì)列遙測(cè)傳輸MQTT)是一種ISO標(biāo)準(zhǔn)消息傳遞協(xié)議,旨在通過(guò)不可靠的網(wǎng)絡(luò)連接傳感器。它在TCP/IP互聯(lián)網(wǎng)協(xié)議之上工作。
    的頭像 發(fā)表于 07-26 10:39 ?1.5w次閱讀
    什么是<b class='flag-5'>MQTT</b> 有哪些特點(diǎn)

    淺談MQTT與Modbus協(xié)議的區(qū)別

    MQTT協(xié)議(消息隊(duì)列遙測(cè)傳輸)是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的消息協(xié)議。 它工作在TCP/IP協(xié)議上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況
    發(fā)表于 04-07 11:09 ?1.8w次閱讀
    淺談<b class='flag-5'>MQTT</b>與Modbus協(xié)議的區(qū)別

    HTTP及MQTT比較分析

    MQTT(消息隊(duì)列遙測(cè)傳輸)是ISO標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的消息協(xié)議。該協(xié)議建立在TCP/IP協(xié)議之上,在1999年由IBM公司發(fā)布,目前已經(jīng)更
    的頭像 發(fā)表于 03-25 14:00 ?6794次閱讀

    MQTT OBD車輛遙測(cè)開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《MQTT OBD車輛遙測(cè)開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 10-24 10:23 ?6次下載
    <b class='flag-5'>MQTT</b> OBD車輛<b class='flag-5'>遙測(cè)</b>開(kāi)源

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】MQTT(消息隊(duì)列遙測(cè)傳輸

    Telemetry Transport(消息隊(duì)列遙測(cè) 傳輸 )是一種基于發(fā)布/訂閱范式的二進(jìn)制“輕量級(jí)”消息協(xié)議,由IB公司發(fā)布。針對(duì)于網(wǎng)絡(luò)受限和 嵌入式 設(shè)備而設(shè)計(jì)的一種數(shù)據(jù)傳輸協(xié)
    的頭像 發(fā)表于 11-03 15:42 ?933次閱讀

    MQTT透?jìng)骱?b class='flag-5'>MQTT網(wǎng)關(guān)的區(qū)別

    MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊
    的頭像 發(fā)表于 11-13 10:47 ?2957次閱讀
    <b class='flag-5'>MQTT</b>透?jìng)骱?b class='flag-5'>MQTT</b>網(wǎng)關(guān)的區(qū)別

    強(qiáng)大的MQTT! 關(guān)于它你應(yīng)該知道什么

    MQTT指消息隊(duì)列遙測(cè)傳輸,是物聯(lián)網(wǎng)的機(jī)器對(duì)機(jī)器(M2M,machine-to-machine)連接協(xié)議。MQTT是一個(gè)輕量級(jí)的發(fā)布和訂閱協(xié)
    的頭像 發(fā)表于 08-03 11:15 ?5196次閱讀
    強(qiáng)大的<b class='flag-5'>MQTT</b>! 關(guān)于它你應(yīng)該知道什么

    MQTT協(xié)議的概念和主要特性 MQTT協(xié)議于物聯(lián)網(wǎng)有何好處

    MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)是ISO標(biāo)準(zhǔn)下基于發(fā)布/訂閱方式的輕量級(jí)消息協(xié)議。
    的頭像 發(fā)表于 07-28 11:21 ?3336次閱讀
    <b class='flag-5'>MQTT</b>協(xié)議的概念和主要特性 <b class='flag-5'>MQTT</b>協(xié)議于物聯(lián)網(wǎng)有何好處

    MQTT協(xié)議詳解 概念、特性、版本及作用

    MQTT(MessageQueuingTelemetryTransport,消息隊(duì)列遙測(cè)傳輸)是ISO標(biāo)準(zhǔn)下基于發(fā)布/訂閱方式的輕量級(jí)消息協(xié)議。MQ
    的頭像 發(fā)表于 08-01 00:09 ?1.1w次閱讀
    <b class='flag-5'>MQTT</b>協(xié)議詳解 概念、特性、版本及作用

    如何在Raspberry Pi樹(shù)莓派上安裝Mosquitto部署MQTT服務(wù)器呢?

    MQTT代表消息隊(duì)列遙測(cè)傳輸,是一種網(wǎng)絡(luò)消息協(xié)議,通常用于物聯(lián)網(wǎng)設(shè)備之間的消息傳輸
    的頭像 發(fā)表于 03-12 11:29 ?2262次閱讀
    如何在Raspberry Pi樹(shù)莓派上安裝Mosquitto部署<b class='flag-5'>MQTT</b>服務(wù)器呢?