色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當(dāng)前位置: 首頁(yè) >應(yīng)用方案 >技術(shù)應(yīng)用 >

Mosquitto詳解和基于Mosquitto實(shí)現(xiàn)MQTT通訊教程


Mosquitto簡(jiǎn)介

Mosquitto 是一個(gè)輕量級(jí)的開(kāi)源消息代理,遵守 MQTT(Message Queuing Telemetry Transport)協(xié)議。Mosquitto通常用于 IoT(物聯(lián)網(wǎng))設(shè)備之間的消息傳遞。以下是對(duì) Mosquitto 的詳細(xì)介紹:

Mosquitto特性

輕量級(jí)Mosquitto 的設(shè)計(jì)使其適用于資源有限的設(shè)備,能夠在小型服務(wù)器和單板計(jì)算機(jī)上運(yùn)行。

支持多種平臺(tái):可以在Linux、Windows 和 macOS 等多個(gè)操作系統(tǒng)上運(yùn)行。

多用戶:支持多客戶端連接,能夠處理大量并發(fā)會(huì)話。

支持QoS 級(jí)別:支持MQTT 的三種服務(wù)質(zhì)量(QoS)級(jí)別,允許用戶根據(jù)需求選擇消息傳遞的可靠性。

QoS 0:最多一次交付

QoS 1:至少一次交付

QoS 2:只有一次交付

持久性:支持將消息持久化到磁盤(pán),便于在重啟后恢復(fù)會(huì)話狀態(tài)。

Mosquitto使用場(chǎng)景

物聯(lián)網(wǎng)應(yīng)用:廣泛用于智能家居、工業(yè)自動(dòng)化、環(huán)境監(jiān)控等領(lǐng)域,設(shè)備間可以通過(guò)低帶寬的網(wǎng)絡(luò)進(jìn)行高效的消息傳遞。

移動(dòng)應(yīng)用:支持低功耗設(shè)備,以降低電池消耗,并實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸。

節(jié)點(diǎn)間通信:在分布式系統(tǒng)中,Mosquitto 可用于不同節(jié)點(diǎn)之間的異步通信。

Mosquitto組件

BrokerMosquitto 的核心是消息代理(Broker),負(fù)責(zé)接收、過(guò)濾、存儲(chǔ)和轉(zhuǎn)發(fā)消息。所有的通信都通過(guò) Broker 進(jìn)行。

Client:連接到Broker 的應(yīng)用或設(shè)備,可以是發(fā)布者(Publisher)、訂閱者(Subscriber)或二者兼具。

Mosquitto安全性

認(rèn)證與授權(quán):支持通過(guò)用戶名和密碼進(jìn)行用戶認(rèn)證,可對(duì)主題進(jìn)行訪問(wèn)控制。

SSL/TLS 加密:支持加密連接,保護(hù)數(shù)據(jù)傳輸?shù)陌踩浴?/span>

Mosquitto安裝與使用

安裝Mosquitto 可以通過(guò) Docker、包管理工具(如 apt、yum)或編譯源代碼安裝。

配置:可以通過(guò)配置文件輕松定制其行為,如連接參數(shù)、認(rèn)證等。

命令行工具:提供mosquitto_pub mosquitto_sub 命令行工具用于快速發(fā)布和訂閱消息。

Mosquitto社區(qū)與支持

Mosquitto 擁有活躍的開(kāi)發(fā)社區(qū),提供豐富的文檔和支持渠道。開(kāi)發(fā)者可以從 GitHub 或官方文檔查找資源,解決問(wèn)題或貢獻(xiàn)代碼。

總結(jié)的來(lái)說(shuō)Mosquitto 是一個(gè)強(qiáng)大而靈活的消息代理,非常適合需要高效通信的物聯(lián)網(wǎng)和分布式應(yīng)用場(chǎng)景。它的輕量級(jí)和易用性,使其成為開(kāi)發(fā)者和企業(yè)的熱門(mén)選擇。

Mosquitto通訊相關(guān)環(huán)境

使用MQTTX軟件以及一個(gè)實(shí)際的串口服務(wù)器進(jìn)行連接與通訊。串口服務(wù)器使用ebyte公司單串口服務(wù)器進(jìn)行連接。

Mosquitto部署的系統(tǒng):Debian 12

使用SSH遠(yuǎn)程服務(wù)器進(jìn)行安裝,SSH開(kāi)啟Root權(quán)限或者使用sudo權(quán)限進(jìn)行部署(不建議正式部署場(chǎng)景直接使用Root權(quán)限)

Mosquitto通訊相關(guān)地址

Mosquitto官網(wǎng):https://mosquitto.org

Debian官網(wǎng):https://www.debian.org

MQTTX官網(wǎng):https://mqttx.app

串口服務(wù)器:http://twohalves.cn/product/2124.html

串口服務(wù)器的使用可以參考:

Mosquitto的安裝與部署

首先,在服務(wù)器或設(shè)備上安裝Mosquitto工具??梢栽贛osquitto官網(wǎng)找到安裝方法。這里我們演示在Debian 12系統(tǒng)上進(jìn)行簡(jiǎn)單安裝。安裝相對(duì)簡(jiǎn)單,您可以參考官方指南進(jìn)行安裝。

大多數(shù)開(kāi)源系統(tǒng)已將Mosquitto添加到源中,可以直接使用apt-get install mosquitto進(jìn)行安裝。

apt-get install mosquitto

1  Mosquitto的安裝與部署

安裝完成后,打開(kāi)配置文件,根據(jù)實(shí)際需求配置Mosquitto。

vim /etc/mosquitto/mosquitto.conf

2  Mosquitto配置

有關(guān)詳細(xì)配置信息,請(qǐng)參閱官方手冊(cè)。這里我們簡(jiǎn)要總結(jié)一下。

# 監(jiān)聽(tīng)的端口

port 1883

# 使用TLS/SSL加密的端口

# port 8883

# 使用WebSocket協(xié)議的端口

# listener 9001

# protocol websockets

# 允許匿名連接

allow_anonymous true

# 用戶名和密碼認(rèn)證

password_file /etc/mosquitto/passwd

# 設(shè)置客戶端ID前綴

# clientid_prefix client-

# 設(shè)置日志文件路徑

log_dest file /var/log/mosquitto/mosquitto.log

可以根據(jù)需要修改以下參數(shù):

l port:設(shè)置Mosquitto監(jiān)聽(tīng)的端口,默認(rèn)是1883。如果使用TLS/SSL加密,可以取消注釋并修改為8883。

l listener:如果要使用WebSocket協(xié)議,可以取消注釋并設(shè)置一個(gè)新的端口。

l allow_anonymous:設(shè)置是否允許匿名連接。如果設(shè)為false,則需要設(shè)置用戶名和密碼認(rèn)證。

l password_file:指定存儲(chǔ)用戶名和密碼的文件路徑??梢允褂?/span>mosquitto_passwd命令生成該文件。

l clientid_prefix:設(shè)置客戶端ID的前綴??梢杂糜跇?biāo)識(shí)不同類(lèi)型的客戶端。

l log_dest:設(shè)置日志文件的路徑,用于記錄Mosquitto的日志信息。

為方便起見(jiàn),我們進(jìn)行簡(jiǎn)單配置:設(shè)置端口并允許匿名連接。

# Place your local configuration in /etc/mosquitto/conf.d/

# A full description of the configuration file is at

# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

persistence true

persistence_location /var/lib/mosquitto/

allow_anonymous true

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

listener 1883

listener 9001

protocol websockets

配置完成后,重新啟動(dòng)Mosquitto服務(wù)以使更改生效。

Linux上,使用systemd管理Mosquitto服務(wù)的情況下:

sudo systemctl restart mosquitto

Windows上,使用服務(wù)管理器來(lái)重啟Mosquitto服務(wù):

txt

net stop mosquitto

net start mosquitto

macOS上,使用launchctl來(lái)重啟Mosquitto服務(wù):

txt

sudo launchctl stop homebrew.mxcl.mosquitto

sudo launchctl start homebrew.mxcl.mosquitto

根據(jù)不同的操作系統(tǒng)和安裝方式,可能會(huì)有所不同。請(qǐng)根據(jù)你的實(shí)際情況選擇適當(dāng)?shù)拿顏?lái)重啟Mosquitto服務(wù)。

Mosquitto連接MQTT服務(wù)器

配置成功后,您可以使用設(shè)備連接MQTT服務(wù)器。打開(kāi)NE2-D11串口服務(wù)器配置軟件,根據(jù)需要選擇鏈路并將工作模式更改為MQTT模式。

3  Mosquitto連接MQTT服務(wù)器

填入實(shí)際MQTT服務(wù)器的地址和端口。

4  Mosquitto連接MQTT服務(wù)器

然后開(kāi)始設(shè)置MQTT參數(shù)。選擇標(biāo)準(zhǔn)的「MQTT 3.1.1」,根據(jù)Mosquitto配置填入「設(shè)備名稱(chēng)」、「用戶名」、「密碼」。在此示例中,我們使用匿名連接,因此隨意填寫(xiě)用戶信息。

5  Mosquitto連接MQTT服務(wù)器

訂閱和發(fā)布設(shè)置根據(jù)實(shí)際情況進(jìn)行配置。我們使用MQTTX軟件模擬服務(wù)器的數(shù)據(jù)采集和指令下發(fā)。因此,隨意填寫(xiě)訂閱和發(fā)布主題。

6  Mosquitto連接MQTT服務(wù)器

設(shè)置完成后,保存并重新啟動(dòng)設(shè)備。通過(guò)產(chǎn)品指示燈觀察是否成功連接到服務(wù)器。

MQTT模擬通訊

成功連接到服務(wù)器后,可以開(kāi)始通訊。我們使用MQTTX軟件進(jìn)行模擬通訊。

7  Mosquitto連接MQTT服務(wù)器

連接MQTTX軟件后,配置好訂閱和發(fā)布主題

8  Mosquitto連接MQTT服務(wù)器

9  Mosquitto連接MQTT服務(wù)器

發(fā)送數(shù)據(jù)進(jìn)行通訊。使用XCOM串口工具模擬產(chǎn)品串口采集的數(shù)據(jù)發(fā)送到服務(wù)器。會(huì)發(fā)現(xiàn)MQTTX軟件成功接收到通過(guò)串口發(fā)送的數(shù)據(jù)。

10  Mosquitto連接MQTT服務(wù)器

然后使用MQTTX軟件發(fā)送數(shù)據(jù),模擬服務(wù)器下發(fā)指令,同樣可以看到XCOM軟件成功接收到MQTTX發(fā)送的數(shù)據(jù)。

11  Mosquitto連接MQTT服務(wù)器

至此,關(guān)于Mosquitto的MQTT通訊教程就到此結(jié)束。有興趣的朋友可以繼續(xù)探索。

Mosquitto其他功能配置

*用戶和密碼

Mosquitto的配置文件中添加用戶和密碼認(rèn)證,可以按照以下步驟進(jìn)行操作:

1.創(chuàng)建一個(gè)密碼文件,用于存儲(chǔ)用戶名和密碼??梢允褂?/span>mosquitto_passwd命令生成密碼文件。例如,執(zhí)行以下命令創(chuàng)建一個(gè)名為passwd的密碼文件:

mosquitto_passwd -c /etc/mosquitto/passwd <username>

替換<username>為你要?jiǎng)?chuàng)建的用戶名。然后會(huì)提示輸入密碼,輸入密碼后會(huì)生成密碼文件。

2.Mosquitto的配置文件中添加以下行來(lái)啟用用戶名和密碼認(rèn)證:

txt

password_file /etc/mosquitto/passwd

allow_anonymous false

這里的/etc/mosquitto/passwd應(yīng)該是你在第一步中創(chuàng)建的密碼文件的路徑。

3.保存并關(guān)閉配置文件。

4.重啟Mosquitto服務(wù)以使配置生效。具體的重啟方法可以參考前面的回答。

配置完成后,客戶端連接Mosquitto時(shí)需要提供正確的用戶名和密碼才能進(jìn)行連接和訪問(wèn)。


今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多串口服務(wù)器、數(shù)傳電臺(tái)、lora模塊等無(wú)線數(shù)傳模塊產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專(zhuān)員!


相關(guān)閱讀:

1、MQTT協(xié)議詳解及物聯(lián)網(wǎng)應(yīng)用特點(diǎn)

2、串口服務(wù)器快速接入MQTT3.1協(xié)議服務(wù)器鏈接配置教程

3、西門(mén)子PLC利用函數(shù)塊連接MQTT服務(wù)器發(fā)布消息教程

4、Node-RED工具M(jìn)QTT IN節(jié)點(diǎn)的動(dòng)態(tài)用法



億佰特官網(wǎng) 4000-330-990

https://www.wjx.cn/jq/84863372.aspx