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

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

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

3天內不再提示

MQTT通信協議和工具包簡介

jf_NKOETB7n ? 來源:LabVIEW的編程之道 ? 2023-11-28 09:24 ? 次閱讀

一、MQTT通信協議和工具包簡介

1、MQTT通信等定義:

消息隊列遙測傳輸( 英語:Message Queuing Telemetry Transport , MQTT )是 ISO 標準 (ISO/IEC PRF 20922) 下基于 發布(Publish)/訂閱(Subscribe) 范式的消息協議,可 視為“資 料 傳遞 的 橋梁” 。----摘錄維基百科

2、MQTT通訊示意圖

673eae68-8d7a-11ee-939d-92fbcf53809c.png

上圖是MQTT的實際使用案例

將上圖簡化后的系統結構圖如下圖:

67589e72-8d7a-11ee-939d-92fbcf53809c.png

3、MQTT系統組成

系統包含兩個部分:

客戶端(Client):需要發布或訂閱消息的終端,可以是智能終端,傳感器,或者是數據庫,主要功能如下:

(1)發布其他客戶端需要訂閱的信息

(2)訂閱其它客戶端發布的消息;

(3)退訂或刪除應用程序的消息;

(4)斷開與服務器連接。

服務器:(Server/Broker):專門用于進行設備注冊和消息轉發,稱為"消息代理"(Broker),具體有如下功能:

(1)接受來自客戶的網絡連接;

(2)接受客戶發布的應用信息;

(3)處理來自客戶端的訂閱和退訂請求;

(4)向訂閱的客戶轉發應用程序消息。

4、MQTT通信方式:

Client之間的通訊可以是一對一,一對N,也可以是N對一。

二、MQTT通信范例

1、MQTT通訊底層方式

范例提供了2種通訊方式,TCP/IP和websocket,底層都是TCP/IP,不過websocket是對TCP/IP的封裝。

2、MQTT所需工具包

具體安裝包如下圖,在VIPM里面安裝相應的工具包和附加工具包,共享的代碼也包含離線安裝包。

679cdf56-8d7a-11ee-939d-92fbcf53809c.png

上面工具包里包含了Client和Broker,通過依賴注入的形式,改變通信類型,提供的范例是TCP/IP和websocket兩套通信模式。

67ad271c-8d7a-11ee-939d-92fbcf53809c.png

其中還可以使用通用的mqtt 調試軟件mosquito調試TCP/IP,但是這個不能調試websocket客戶端。打開命令為 mosquito -d -v.這個調試工具在代碼的共享,也可到網上下載。

67bdd904-8d7a-11ee-939d-92fbcf53809c.png

三、MQTT通信范例

1、軟件擴展

為了監聽底層通信報文,在項目中創建了兩個類TCP Pro和WebSocket Pro分別繼承Connect Tcp和WebSocketsConnect,分別添加一個Name屬性并重寫Read incoming Bytes和Write Incoming Biytes,使用了我上一章介紹的工具,Consol FGV對實時報文進行監控。

67e1bf36-8d7a-11ee-939d-92fbcf53809c.png

重寫讀者類,監聽報文

67f84eea-8d7a-11ee-939d-92fbcf53809c.png

680d4d22-8d7a-11ee-939d-92fbcf53809c.png

重寫后通信接口UML關系圖:

6821711c-8d7a-11ee-939d-92fbcf53809c.png

2、為客戶端添加自動斷開后自動停止事件,這里將庫里的私有方法設置成公共方法,然后使用Close Seccion事件來自動停止,如果不想改變工具包,可以刪除相應的代碼不影響整體功能。

將私有文件夾設置乘公共文件夾

682f0c46-8d7a-11ee-939d-92fbcf53809c.png

3、TCP MQTT范例演示

注意先啟動服務器再啟動客戶端

啟動Broker

68414b9a-8d7a-11ee-939d-92fbcf53809c.png

啟動Clent1

6857dcac-8d7a-11ee-939d-92fbcf53809c.png

啟動Clent2

68846632-8d7a-11ee-939d-92fbcf53809c.png

服務端可以看到已經啟動了兩個客戶端。

68988b80-8d7a-11ee-939d-92fbcf53809c.png

發布V1消息,訂閱消息V2

68b219d8-8d7a-11ee-939d-92fbcf53809c.png

發布V2消息,訂閱消息V1

68d09de0-8d7a-11ee-939d-92fbcf53809c.png

同時訂閱V1,V2兩個消息

68ec551c-8d7a-11ee-939d-92fbcf53809c.png

可以自行嘗試下取消訂閱相關消息

4、websocket MQTT范例演示

注意先啟動服務器再啟動客戶端

啟動client1

6905f760-8d7a-11ee-939d-92fbcf53809c.png

啟動client2

692462b8-8d7a-11ee-939d-92fbcf53809c.png

websocketBroker

693c662e-8d7a-11ee-939d-92fbcf53809c.png

?

?可以嘗試訂閱和取消訂閱相關消息

5、練習:

是否可以使用這個工具包,開發一個建議的局域網聊天軟件,這樣可以更好的學習這個工具包的用法:)。

四、MQTT通訊原理簡介

1、MQTT啟動和連接

6965b6a0-8d7a-11ee-939d-92fbcf53809c.png

1.1、首先啟動服務器,服務器啟動后會啟動一個異步線程監聽是否有客戶端連接到服務器端口

1.2、啟動客戶端,鏈接到服務器后向服務發送鏈接信息,服務端檢測服務信息正確后返回連接信息,如果不正確就會斷開連接。

1.3、客戶端長期沒有給服務發數據時需要向服務器發送心跳消息,如果不發送超時,服務器會斷開客戶端。

LabVIEW的范例中的服務器沒有這個功能,mosquito服務器有這個功能,需要了解的讀者可以自行嘗試

2、MQTT通信方式

697c3934-8d7a-11ee-939d-92fbcf53809c.png

1.1、客戶端需要某個主題A消息時向服務器訂閱主題A,當客戶端0向服務器發送主題A時,訂閱了主題A的客戶端都會收到客戶端0的主題,沒有訂閱的客戶端不會收到主題A。

1.2、當某個客戶端不需要主題A時可取消訂閱主題A。

五、需要安裝的軟件、工具包和庫

1、LabVIEW2015中文版

2、mqtt工具包集合

3、mosquitto服務器安裝包

審核編輯:湯梓紅

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

    關注

    2548

    文章

    50740

    瀏覽量

    752140
  • 通信協議
    +關注

    關注

    28

    文章

    861

    瀏覽量

    40274
  • 客戶端
    +關注

    關注

    1

    文章

    290

    瀏覽量

    16662
  • MQTT
    +關注

    關注

    5

    文章

    649

    瀏覽量

    22439

原文標題:LabVIEW的編程之道-MQTT工具包使用詳解

文章出處:【微信號:LabVIEW的編程之道,微信公眾號:LabVIEW的編程之道】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    通信協議解讀:CoAP/LWM2M協議和MQTT協議

    本文將分別解讀CoAP/LWM2M協議和MQTT協議,希望能幫助您了解這些協議,并選擇最適合您的設備的通信協議
    的頭像 發表于 12-04 14:09 ?1.3w次閱讀
    <b class='flag-5'>通信協議</b>解讀:CoAP/LWM2M<b class='flag-5'>協議和</b><b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>

    RK3568-MQTT通信協議案例

    RK3568-MQTT通信協議案例
    的頭像 發表于 01-19 15:31 ?1758次閱讀
    RK3568-<b class='flag-5'>MQTT</b><b class='flag-5'>通信協議</b>案例

    TLT507-MQTT通信協議案例

    TLT507-MQTT通信協議案例
    的頭像 發表于 01-26 10:06 ?762次閱讀
    TLT507-<b class='flag-5'>MQTT</b><b class='flag-5'>通信協議</b>案例

    促進ARM嵌入式發展的工具包簡介

    促進ARM嵌入式發展的工具包簡介
    發表于 07-31 21:55

    TCP通信協議-Labview上位機

    現在用單片機進行信息采集,通過GPRS模塊上傳到PC,用Labview做上位機,TCP通信協議,想請教一下,TCP通信協議和Modbus TCP通信協議有什么不同?
    發表于 12-10 08:58

    哪位大神用過labview的MQTT工具包,想連接onenet平臺。

    安裝了MQTT工具包不會用,有沒有大神指點一下
    發表于 05-27 15:10

    全志科技T3開發板(4核ARM Cortex-A7)——MQTT通信協議案例

    本文主要介紹基于T3處理器的MQTT通信協議開發案例,講解內容主要包括了MQTT通信協議簡介、概述、應用場景以及Mosquitto
    發表于 06-09 14:55

    全志T3+Logos FPGA開發板——MQTT通信協議案例

    、FPGA、ROM、RAM、電源、晶振、連接器等所有器件均采用國產工業級方案,國產化率100%。給大家詳細講解嵌入式行業中,常使用到的MQTT通信協議案例,分別涵蓋了MQTT通信協議
    發表于 03-31 15:35

    Labview2013各工具包的功能簡介

    Labview2013各工具包的功能簡介Labview2013各工具包的功能簡介
    發表于 11-20 11:20 ?0次下載

    【理論】通信的硬件層協議和軟件層協議

    眾所周知通信協議就是一種數據傳輸的協議規范,從軟硬件層面可以分為硬件層通信協議和軟件層通信協議,本文通過對通信的硬件層
    發表于 12-05 15:51 ?9次下載
    【理論】<b class='flag-5'>通信</b>的硬件層<b class='flag-5'>協議和</b>軟件層<b class='flag-5'>協議</b>

    S7通信協議介紹 s7協議和profinet協議區別

    S7協議和Profinet協議都是工業自動化領域中常用的通信協議,其中S7協議是傳統的工控領域常用的通信協議,而Profinet是近年來出現
    發表于 05-08 16:19 ?2.5w次閱讀

    全志T3開發板 ARM CortexA7——MQTT通信協議

    本文主要介紹基于T3處理器的MQTT通信協議開發案例,講解內容主要包括了MQTT通信協議簡介、概述、應用場景以及Mosquitto
    發表于 06-09 14:50 ?6次下載

    NPOI WEG報表工具包簡介

    很久以前就知道有NPOI這個報表工具包,因為有NI自帶的工具包就沒有詳細研究過。當前工作中幾臺電腦因為安裝OFFICE版本問題,或其它原因導致自帶報表無法使用,就找來了一個群友共享的的NPOI工具包
    的頭像 發表于 11-06 10:05 ?983次閱讀
    NPOI WEG報表<b class='flag-5'>工具包</b><b class='flag-5'>簡介</b>

    mqtt協議和http協議區別

    的WWW文件都必須遵守這個標準。HTTP是一個基于TCP/IP通信協議來傳遞數據(HTML 文件、圖片文件、查詢結果等),屬于應用層的面向對象的協議。由于其
    的頭像 發表于 01-19 15:56 ?6831次閱讀

    mqtt協議和tcp協議區別

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