Windows下搭建MQTT服務(wù)器的詳細(xì)教程
一、MQTT服務(wù)器軟件篩選
MQ遙測傳輸(MQTT)是輕量級基于代理的發(fā)布/訂閱的消息傳輸協(xié)議,設(shè)計(jì)思想是開放、簡單、輕量、易于實(shí)現(xiàn)。這些特點(diǎn)使它適用于低帶寬受限環(huán)境。特點(diǎn)包括以下:
使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應(yīng)用程序耦合。對負(fù)載內(nèi)容屏蔽的消息傳輸。使用TCP/IP提供網(wǎng)絡(luò)連接。小型傳輸,開銷很?。ü潭ㄩL度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。使用Last Will和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。有三種消息發(fā)布服務(wù)質(zhì)量:(1)“至多一次”,消息發(fā)布完全依賴底層 TCP/IP 網(wǎng)絡(luò)。會發(fā)生消息丟失或重復(fù)。這一級別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無所謂,因?yàn)椴痪煤筮€會有第二次發(fā)送。(2)“至少一次”,確保消息到達(dá),但消息重復(fù)可能會發(fā)生。(3)“只有一次”,確保消息到達(dá)一次。這一級別可用于如下情況,在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會導(dǎo)致不正確的結(jié)果。

能夠搭建MQTT服務(wù)器的軟件有很多,比如:
mosquitto,Eclipse Mosquitto使用 C 語言實(shí)現(xiàn)的 MQTT 服務(wù)器。EMQX,使用 Erlang 語言開發(fā)的 MQTT 服務(wù)器,內(nèi)置強(qiáng)大的規(guī)則引擎,支持許多其他 IoT 協(xié)議比如 MQTT-SN、 CoAP、LwM2M 等。Mosca,使用 Node.JS 開發(fā)的 MQTT 服務(wù)器,簡單易用。VerneMQ,使用 Erlang 開發(fā)的 MQTT 服務(wù)器。
本文是以mosquitto在windows下搭建過程為例進(jìn)行介紹。
二、MQTT服務(wù)器軟件mosquitto下載
1、進(jìn)入mosquitto下載網(wǎng)址:https://mosquitto.org/download/,如下圖:

2、點(diǎn)擊上圖中紅框的鏈接進(jìn)行下載,下載到本地計(jì)算機(jī),如下圖:

3、右鍵點(diǎn)擊mosquitto-2.0.14-install-windows-x64.exe以管理員身份進(jìn)行安裝,如下圖:

4、點(diǎn)擊"Next >"按鈕,如下圖:

5、繼續(xù)點(diǎn)擊“Next >”按鈕,如下圖:
6、
可以更改安裝目錄,我更改到D盤,點(diǎn)擊“Install”按鈕,如下圖:

7、等待安裝完畢,如下圖:

8、點(diǎn)擊"Finish"按鈕,至此安裝完成。
三、修改mosquitto配置,并啟動mosquitto服務(wù)
1、安裝完畢后,需要對配置文件進(jìn)行修改,配置文件位置:D:\mosquitto\mosquitto.conf,如下:

2、這里我們主要是改一下偵聽端口和開啟用戶驗(yàn)證(即設(shè)置用戶名和密碼)2.1 修改偵聽端口打開mosquitto.conf,找到linstener,取消前面的#注釋,并指定要偵聽的端口,如下:
listener 7788
2.2 設(shè)置用戶名密碼2.2.1 找到找到allow_anonymous節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)作用是,是否開啟匿名用戶登錄,默認(rèn)是true。打開此項(xiàng)配置(將前面的 # 號去掉)之后將其值改為true
修改前:#allow_anonymous修改后:allow_anonymous false
2.2.2 找到password_file節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)是告訴服務(wù)器你要配置的用戶將存放在哪里。打開此配置并指定pwfile.example文件路勁(注意是絕對路勁)
修改前:#password_file修改后:password_file D:\pwfile.example
3、在管理工具->服務(wù),中找到Mosquitto Broker,啟動mosquitto服務(wù),如下圖:

4、以管理員身份打開CMD,并切換到d:/mosquitto目錄下,運(yùn)行以下命令添加用戶名和密碼:
mosquitto_passwd.exe -c d:/pwfile.example admin
提示連續(xù)兩次輸入密碼、創(chuàng)建成功。命令解釋: -c 創(chuàng)建一個(gè)用戶、/etc/mosquitto/pwfile.example 是將用戶創(chuàng)建到 pwfile.example 文件中、admin 是用戶名。如下圖:

注意:添加用戶和密碼后,需要對mosquitto服務(wù)進(jìn)行重啟才能生效。
四、利用mosquitto工具測試訂閱與發(fā)布
再以管理員啟動2個(gè)CMD窗口,并進(jìn)入d:/mosquitto目錄,cmd窗口1作為訂閱者,cmd窗口2作為發(fā)布者,如下圖:

在cmd窗口1中執(zhí)行以下命令,進(jìn)行消息訂閱
mosquitto_sub.exe -h 127.0.0.1 -p 7788 -u admin -P 123456 -v -t sensor
在cmd窗口2中執(zhí)行以下命令,進(jìn)行消息發(fā)送
mosquitto_pub.exe -h 127.0.0.1 -p 7788 -u admin -P 123456 -t sensor -m "消息測試"
如下圖:

五、可視化MQTT客戶端工具M(jìn)QTTX使用
MQTT的客戶端測試工具有很多,而MQTTX無疑是其中的佼佼者,下面就介紹一下其使用過程。1、首先從官網(wǎng)下載,MQTTX下載地址:
https://github.com/emqx/MQTTX/releases

2、選擇適合你操作系統(tǒng)的版本進(jìn)行下載,如下圖:

3、下載后如下圖:

4、以管理員
方式安裝MQTTX-Setup-1.7.3.exe,如果出現(xiàn)Microsoft Defender SmartScreen阻止提示,則點(diǎn)擊“仍要運(yùn)行”,如下圖:

5、安裝步驟
如下圖:

6、安裝過程中可以更改安裝目錄,如下圖:

7、點(diǎn)擊“安裝”按鈕,如下圖:

8、安裝完畢是會出現(xiàn)完成提示,如下圖:

9、勾選運(yùn)行MQTTX(R),點(diǎn)擊“完成”按鈕,則運(yùn)行MQTTX,如下圖:

10、點(diǎn)擊“New Connection”按鈕,則出現(xiàn)新建連接對話框,根據(jù)MQTT服務(wù)器的信息,輸入對應(yīng)的參數(shù),如下圖:

11、點(diǎn)擊Connect按鈕,如下圖:

12、如果想訂閱一個(gè)主題,則點(diǎn)擊“New Subscription”按鈕,則出現(xiàn)新建訂閱對話框,如下圖:

13、輸入對應(yīng)的主題后,點(diǎn)擊“Confirm”按鈕,如下圖:

14、結(jié)合CMD窗口使用mosquitto_pub.exe發(fā)布工具發(fā)一個(gè)消息測試一下,如下圖:

從上圖中可以看出,訂閱的主題已經(jīng)接收到了測試的消息。
到此這篇關(guān)于Windows下搭建MQTT服務(wù)器的詳細(xì)教程的文章就介紹到這了,更多相關(guān)MQTT服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
curl.exe安裝使用的最全參數(shù)詳解以及常用命令匯總
Curl是一個(gè)功能強(qiáng)大的命令行工具,可以看做是命令行瀏覽器,用于與服務(wù)器進(jìn)行數(shù)據(jù)交互,支持多種數(shù)據(jù)傳輸協(xié)議,如HTTP、HTTPS、FTP等,它支持文件的上傳和下載,它是一款開源軟件,在多個(gè)操作系統(tǒng)上均可運(yùn)行,包括Windows、Linux、macOS等2024-04-04
在Windows上使用qemu安裝ubuntu24.04服務(wù)器的詳細(xì)指南
本文介紹了在Windows上使用QEMU安裝Ubuntu 24.04的全流程:安裝QEMU、準(zhǔn)備ISO鏡像、創(chuàng)建虛擬磁盤、配置啟動參數(shù)(含加速和圖形界面選項(xiàng))、完成安裝及網(wǎng)絡(luò)設(shè)置,并提供常見問題解決方案,如性能優(yōu)化和鍵盤響應(yīng)問題,感興趣的朋友一起看看吧2025-06-06
vscode設(shè)置免密登錄遠(yuǎn)程服務(wù)器的解決方案
當(dāng)我們使用vscode的ssh連接遠(yuǎn)程服務(wù)器后,過一段時(shí)間后,總是要求登錄服務(wù)器的密碼,遇到這樣的問題如何解決呢,下面給大家分享vscode設(shè)置免密登錄遠(yuǎn)程服務(wù)器的解決方案,感興趣的朋友跟隨小編一起看看吧2024-05-05
git創(chuàng)建版本庫_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了git創(chuàng)建版本庫的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
服務(wù)器常見問題匯總(常見故障及相應(yīng)的解決方法)
服務(wù)器一般是很少出現(xiàn)問題的,一旦出現(xiàn)問題,怎樣去積極的搶救呢?我們不能坐以待斃,原因一旦服務(wù)器故障,那么該服務(wù)器上的所有網(wǎng)站將都會無法打開。對于一個(gè)企業(yè)來說,網(wǎng)站就是他們的命脈,損失是巨大的2017-04-04
CentOS配置虛擬主機(jī)virtualhost使服務(wù)器支持多網(wǎng)站多域名的方法
這篇文章主要介紹了CentOS配置虛擬主機(jī)virtualhost使服務(wù)器支持多網(wǎng)站多域名的方法,涉及CentOS環(huán)境下Apache服務(wù)器虛擬主機(jī)設(shè)置技巧,需要的朋友可以參考下2016-10-10
MongoDB學(xué)習(xí)筆記(四) 用MongoDB的文檔結(jié)構(gòu)描述數(shù)據(jù)關(guān)系
MongoDB的集合(collection)可以看做關(guān)系型數(shù)據(jù)庫的表,文檔對象(document)可以看做關(guān)系型數(shù)據(jù)庫的一條記錄。但兩者并不完全對等2013-07-07

