2024/07/14

Mosquitto一瞥

摘要

本文簡要介紹一個MQTT(Message Queuing Telemetry Transport)的實現Mosquitto的安裝與測試。

本文

參考這裡,MQTT協定定義了兩種網路實體,其一為message broker、另一為client,broker用於接收來自client的訊息並轉發至目標client,訊息的傳輸是透過主題(topic),稱為發佈者(publisher)的client有需要publish的資料時,其向連接的broker發送攜帶有資料的控制訊息,broker會向subscribe此一主題的稱為訂閱者(subscriber)的client來publish此一資料。

此處的訂閱者client、發佈者client、和broker等實體的示意圖如下;每一個實體都將安裝Mosquitto套件。

各個實體

作為broker的Fedora作業系統安裝並執行Mosquitto服務的步驟如下,其中,安裝完畢後需要利用諸如nano的文字編輯器來依據這裡allow_anonymous true、和listener 1883這2列添加至組態設定檔/etc/mosquitto/mosquitto.conf

sudo dnf install -y mosquitto
sudo nano /etc/mosquitto/mosquitto.conf
sudo systemctl restart mosquitto
sudo systemctl enable mosquitto
systemctl status mosquitto

作為訂閱者client的AlmaLinux作業系統安裝並執行Mosquitto工具的步驟如下。

sudo dnf install -y epel-release
sudo dnf install -y mosquitto
mosquitto_sub -h 10.0.2.15 -t /this/is/a/topic

作為發佈者client的Rocky Linux作業系統安裝並執行Mosquitto工具的步驟如下。

sudo dnf install -y epel-release
sudo dnf install -y mosquitto
mosquitto_pub -h 10.0.2.15 -t /this/is/a/topic -m "This is a message"

最終訂閱與發佈的測試結果如下。

Mosquitto服務

Mosquitto訂閱與發佈

完成。

備註:此處各個實體安裝於Oracle VM VirtualBox、並指定介面卡為NAT網路


參考文獻

https://techloudgeek.com/download/image/?link=https://dlconusc1.linuxvmimages.com/046389e06777452db2ccf9a32efa3760:virtualbox/A/AlmaLinux/AlmaLinux_9.0_VBG.7z
https://techloudgeek.com/download/image/?link=https://dlconusc1.linuxvmimages.com/046389e06777452db2ccf9a32efa3760:dldatac/VirtualBox/R/rockylinux/9/RockyLinux_9.0_VBG.7z
https://zh.wikipedia.org/zh-tw/MQTT
https://stackoverflow.com/questions/65278648/mosquitto-starting-in-local-only-mode
https://everythingsmarthome.co.uk/how-to-install-an-mqtt-broker-mosquitto-install-config-on-debian-ubuntu-mint-fedora-raspbian/


沒有留言:

張貼留言