chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

精通 MQTT:消息隊列遙測傳輸指南!

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

掃碼添加小助手

加入工程師交流群

引言

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

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

MQTT 代理

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

MQTT 中的客戶端

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

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

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

運行本地 MQTT 代理

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

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

MQTT 代理的工作原理

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

2.客戶端連接到代理。

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

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

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

發(fā)布者和訂閱者

發(fā)布者

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

訂閱者

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

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

Python 中的 Paho MQTT 庫允許創(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" → 為客戶端分配一個唯一標識符。

clean_session=True → 如果為 True,客戶端斷開連接時不會存儲會話數(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)

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

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

非保留消息(retain=False)

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

服務質量(QoS)級別

MQTT 支持三種消息傳遞保證級別:

+-----------+-----------------------------------+| 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()

持久會話

默認情況下,當 MQTT 客戶端斷開連接時,它會丟失所有訂閱。如果 clean_session=False,代理會記住:

客戶端的訂閱。

客戶端錯過的任何 QoS 1 或 2 消息。

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

結論

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

原文地址:

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

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

    關注

    2938

    文章

    46930

    瀏覽量

    402561
  • 傳輸
    +關注

    關注

    0

    文章

    156

    瀏覽量

    28223
  • MQTT
    +關注

    關注

    5

    文章

    708

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

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

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

    怎樣用MQTT連接樹莓派IoT設備

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

    怎樣從中傳輸MQTT消息ESP8266/NodeMCU到運行MQTT代理的樹莓派

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

    什么是MQTT 有哪些特點

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

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

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

    HTTP及MQTT比較分析

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

    MQTT OBD車輛遙測開源

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

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

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

    MQTT透傳和MQTT網(wǎng)關的區(qū)別

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

    強大的MQTT! 關于它你應該知道什么

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

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

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

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

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

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

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