国产精品一区在线观看你懂的,三级电影网站免费观看,日韩黄色网,大黄网站在线观看

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

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


Mosquitto簡介

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

Mosquitto特性

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

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

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

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

QoS 0:最多一次交付

QoS 1:至少一次交付

QoS 2:只有一次交付

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

Mosquitto使用場景

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

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

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

Mosquitto組件

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

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

Mosquitto安全性

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

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

Mosquitto安裝與使用

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

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

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

Mosquitto社區(qū)與支持

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

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

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

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

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

使用SSH遠(yuǎn)程服務(wù)器進(jìn)行安裝,SSH開啟Root權(quán)限或者使用sudo權(quán)限進(jìn)行部署(不建議正式部署場景直接使用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:///product/2124.html

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

Mosquitto的安裝與部署

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

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

apt-get install mosquitto

1  Mosquitto的安裝與部署

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

vim /etc/mosquitto/mosquitto.conf

2  Mosquitto配置

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

# 監(jiān)聽的端口

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)聽的端口,默認(rèn)是1883。如果使用TLS/SSL加密,可以取消注釋并修改為8883。

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

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

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

l clientid_prefix:設(shè)置客戶端ID的前綴。可以用于標(biāo)識不同類型的客戶端。

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

為方便起見,我們進(jì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

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

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

sudo systemctl restart mosquitto

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

txt

net stop mosquitto

net start mosquitto

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

txt

sudo launchctl stop homebrew.mxcl.mosquitto

sudo launchctl start homebrew.mxcl.mosquitto

根據(jù)不同的操作系統(tǒng)和安裝方式,可能會有所不同。請根據(jù)你的實(shí)際情況選擇適當(dāng)?shù)拿顏碇貑?/span>Mosquitto服務(wù)。

Mosquitto連接MQTT服務(wù)器

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

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

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

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

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

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

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

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

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

MQTT模擬通訊

成功連接到服務(wù)器后,可以開始通訊。我們使用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ù)器。會發(fā)現(xiàn)MQTTX軟件成功接收到通過串口發(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)建一個密碼文件,用于存儲用戶名和密碼??梢允褂?/span>mosquitto_passwd命令生成密碼文件。例如,執(zhí)行以下命令創(chuàng)建一個名為passwd的密碼文件:

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

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

2.Mosquitto的配置文件中添加以下行來啟用用戶名和密碼認(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時需要提供正確的用戶名和密碼才能進(jìn)行連接和訪問。


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


相關(guān)閱讀:

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

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

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

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



點(diǎn)擊撥打: 億佰特官網(wǎng) 4000-330-990