一、MQTT簡介
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是一種輕量級的消息傳輸協議,專門為物聯網設備設計,它採用了發布/訂閱模式,能夠快速高效地傳輸消息,尤其適用於低帶寬、不穩定網路環境下的物聯網場景。
MQTT協議具有簡單、使用廣泛的特點,它的開源實現有多個,最著名的當屬Eclipse Mosquitto。
二、Mosquitto的安裝與配置
Mosquitto支持Linux、Windows、Mac OS等多個操作系統,安裝方式各有不同,這裡以Linux為例:
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
安裝成功後,在Terminal中輸入命令”mosquitto”啟動MQTT代理服務,默認埠為1883。
為了使用TLS協議進行安全傳輸,可以使用OpenSSL生成證書,詳細的安裝過程可以參考官方文檔。
openssl genrsa -des3 -out ca.key 2048
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
openssl genrsa -out server.key 2048
openssl req -new -out server.csr -key server.key
openssl x509 -req -in server.csr -days 365 -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
為了讓Mosquitto啟用這些證書,需要修改配置文件mosquitto.conf,添加以下內容:
listener 8883
cafile /path/to/ca.crt
certfile /path/to/server.crt
keyfile /path/to/server.key
tls_version tlsv1.2
啟動Mosquitto代理服務時,需指定配置文件:
mosquitto -c /path/to/mosquitto.conf
三、Mosquitto的基本使用
使用mosquitto_sub和mosquitto_pub命令可以方便地進行數據訂閱和發布。下面是一個簡單的示例:
mosquitto_sub -t "topic/test"
打開另一個Terminal窗口,使用mosquitto_pub命令向該Topic發布數據:
mosquitto_pub -t "topic/test" -m "Hello World"
可以看到第一個窗口中輸出了”Hello World”。
小結:
通過這個簡單的例子,我們可以看到Mosquitto實現了MQTT協議的核心功能,即發布/訂閱模式的消息傳輸。同時,Mosquitto還支持很多高級功能,例如:支持WebSocket、Bridge、ACL、服務質量等。對於在大規模物聯網場景下的MQTT消息傳輸,Mosquitto是發揮重要作用的一款消息代理軟體。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293981.html