日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

详介 MQTT 服务器的搭建与客户端连接

發布時間:2023/12/14 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详介 MQTT 服务器的搭建与客户端连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、MQTT 協議簡介
  • 二、使用 apollo 搭建 MQTT 服務器
  • 三、使用 MQTT 客戶端創建連接
  • 四、消息發布與訂閱的基本操作
  • 五、總結
  • 六、參考資料

本文內容:學習和熟悉 MQTT 協議,在本機上安裝 MQTT 服務器和客戶端軟件,練習消息發布與訂閱,比如自定義一個天氣預報的消息主題(提示:可以利用課堂教學資料或網上資源)

一、MQTT 協議簡介

  • MQTT( Message Queuing Telemetry Transport,消息隊列遙測傳輸協議 ),是一種基于發布/訂閱( publish/subscribe )模式的 “ 輕量級 ” 通訊協議,該協議構建于 TCP/IP 協議上,由 IBM 在 1999 年發布。MQTT 最大優點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用。

1)MQTT 的特點:

  • MQTT 協議是輕量、簡單、開放和易于實現的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(M2M)通信和物聯網(IoT)。其在,通過衛星鏈路通信傳感器、偶爾撥號的醫療設備、智能家居、及一些小型化設備中已廣泛使用。
  • MQTT 協議當前版本為,2014 年發布的 MQTT v3.1.1。除標準版外,還有一個簡化版 MQTT-SN,該協議主要針對嵌入式設備,這些設備一般工作于 TCP/IP 網絡,如:ZigBee。
  • MQTT 協議運行在 TCP/IP 或其他網絡協議,提供有序、無損、雙向連接。其特點包括:
    • 1、使用的發布/訂閱消息模式,它提供了一對多消息分發,以實現與應用程序的解耦;
    • 2、對負載內容屏蔽的消息傳輸機制;
    • 3、對傳輸消息有三種服務質量(QoS):
      ——最多一次,這一級別會發生消息丟失或重復,消息發布依賴于底層TCP/IP網絡。即:<=1;
      ——至多一次,這一級別會確保消息到達,但消息可能會重復。即:>=1;
      ——只有一次,確保消息只有一次到達。即:=1。在一些要求比較嚴格的計費系統中,可以使用此級別;
    • 4、數據傳輸和協議交換的最小化(協議頭部只有2字節),以減少網絡流量;
    • 5、通知機制,異常中斷時通知傳輸雙方;

2)MQTT 協議原理

  • 實現MQTT協議需要:客戶端和服務器端
  • MQTT協議中有三種身份:發布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。其中,消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。
  • MQTT傳輸的消息分為:主題(Topic)和負載(payload)兩部分
    • Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload)
    • payload,可以理解為消息的內容,是指訂閱者具體要使用的內容

說明:更多信息了解請百度搜索:消息通信的利器-MQTT協議簡介及協議原理

二、使用 apollo 搭建 MQTT 服務器

1)配置 apollo

  • 下載 apollo 鏈接:https://pan.baidu.com/s/1fwm0KnB7xG_JBna7nM-mpA
    提取碼:vy47
  • 解壓縮文件
  • 配置 jdk(說明:如果之前已經配置好,可以直接忽略,安裝版本不可過高,否則后面搭建不成功),參考博客:JDK安裝與環境變量配置
  • 然后進入到 apollo 下面的 bin 文件夾下,并使用命令 apollo.cmd create mybroker(注:mybroker 是自己隨便取得一個名字),創建成功如下圖所示。

2)開啟 appllo 服務

  • 使用 cmd 進入到 apache-apollo-1.7.1\bin\mybroker\bin 路徑下,運行命令 .\apollo-broker-service install 和 .\apollo-broker-service start 即可。
  • 在服務中可以看到有這個 Apollo:mybroker 運行。
  • 在瀏覽器中輸入 http://127.0.0.1:61680,進入 apollo 的登錄頁面。
  • 第一次登錄輸入:Username=admin,Password=password 即可。
  • 但是,第二次登陸的時候,就無法再次登錄。可以輸入:https://127.0.0.1:61681,進行再次登錄。

3)修改 ip 地址,以供局域網連接

  • 查看自己電腦的 IP 是多少。
  • 登錄 MQTT 服務器打開之后,選擇 configration 下選擇 apollo.xml 文件,修改 <host_name> 屬性為服務器 ip(192.168.0.2),<web_admin> 同步修改,以及 tcp 節點下將默認的 tcp://0.0.0.0:61613 修改為服務器的 ip,以供局域網使用,點擊 Save 保存,即可在局域網內使用服務器的 ip 登錄。
  • 使用地址 http:\\192.168.0.2:61680 可以成功打開。
  • 如果主機地址換了,可以依照上面的方法重新修改 apollo.xml 文件。
  • 至此,MQTT 服務器搭建基本完成了。

三、使用 MQTT 客戶端創建連接

  • 下載客戶端鏈接:https://pan.baidu.com/s/1egAsqFVHbrR7VMrzbr2AOw
    提取碼:go0f
  • 解壓后,雙擊運行 paho.exe。
  • 添加連接。
  • 點擊 選項 ,勾選上登錄,并輸入用戶名和密碼
  • 輸入服務器地址(剛剛的 apollo.xml 文件內的),然后點擊 連接 ,即可連接成功。
  • 服務器顯示連接的 IP 及端口號等信息。

四、消息發布與訂閱的基本操作

  • 按照上述方法再額外建立一個連接(注:可以使用同一局域網的 PC 連接服務器,前提是安裝了客戶端,這里我沒有別的 PC ,就用本機額外建立了一個連接)。

  • 我這里顯示的是:同一主機使用不同的端口連接了服務器。

客戶端 test1:訂閱 hello 主題

  • 點擊 + 按鈕,添加一個主題,然后點擊 訂閱 即可(說明:由于并沒有 hello 主題發出,所以沒有收到消息,其它客戶端發布主題后,該客戶端會收到消息)。

客戶端 test2:發布 hello 主題

  • 編輯 主題 和 消息 ,并點擊 發布 ,歷史記錄中顯示已發布。
  • 由于客戶端 test1 已訂閱了 hello 主題,所以同時會收到該消息。

五、總結

  • MQTT 使用起來十分的方便,在多個小型設備之間可以進行數據的傳輸,這篇文章只是對 MQTT 進行訂閱 \ 發送功能的簡介使用,并沒有對 MQTT 協議進行深入的了解,但是由于 MQTT 的輕便、可靠的使用,在未來的物聯網方面肯定有很大的促進作用,所以還是有必要去學習使用相關的操作、功能。

六、參考資料

1、MQTT服務器搭建以及構建服務端和客戶端——Windows
2、Apollo MQTT在windows上面環境部署與連接測試

總結

以上是生活随笔為你收集整理的详介 MQTT 服务器的搭建与客户端连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。