mosquitto工具安裝使用
mqtt是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。
mosquitto是一款實現了 mqtt v3.1 協議的開源訊息**軟體,提供輕量級的,支援發布/訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊簡單易用。
若初次接觸mqtt協議,可先理解以下概念:
【mqtt協議特點】——相比於restful架構的物聯網系統,mqtt協議借助訊息推送功能,可以
更好地實現遠端控制
。【mqtt協議角色】——在restful架構的物聯網系統,包含兩個角色客戶端和伺服器端,而在mqtt協議中包括
發布者,**器(伺服器)和訂閱者。
【mqtt協議訊息】——mqtt中的訊息可理解為發布者和訂閱者交換的內容(負載),這些訊息包含具體的內容,可以被訂閱者使用。
【mqtt協議主題】——mqtt中的主題可理解為相同型別或相似型別的訊息集合。
1 安裝和使用注意點
1.1 安裝
截止2023年12月,最新版本為mosquitto-1.4.5
wget
# 解壓
tar zxfv mosquitto-1.4.5.tar.gz
# 進入目錄
cd mosquitto-1.4.5
# 編譯
make
# 安裝
sudo make install
1.2 安裝注意點
編譯找不到openssl/ssl.h
【解決方法】——安裝openssl
sudo apt-get install libssl-dev
編譯過程找不到ares.h
sudo apt-get install libc-ares-dev
編譯過程找不到uuid/uuid.h
sudo apt-get install uuid-dev
使用過程中找不到libmosquitto.so.1
error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: no such file or directory
【解決方法】——修改libmosquitto.so位置
# 建立鏈結
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
# 更新動態鏈結庫
sudo ldconfig
make: g++:命令未找到
【解決方法】
安裝g++編譯器
sudo apt-get install g++
2 簡單測試
乙個完整的mqtt示例包括乙個**器,乙個發布者和乙個訂閱者。測試分為以下幾個步驟:
啟動服務mosquitto。
訂閱者通過mosquitto_sub訂閱指定主題的訊息。
發布者通過mosquitto_pub發布指定主題的訊息。
**伺服器把該主題的訊息推送到訂閱者。
【測試說明】
測試環境:ubuntu 14.04 虛擬機器
在本例中,發布者、**和訂閱者均為localhsot,但是在實際的情況下三種並不是同乙個裝置,在mosquitto中可通過-h(--host)設定主機名稱(hostname)。為了實現這個簡單的測試案例,需要在linux中開啟三個控制台,分別代表**伺服器、發布者和訂閱者。
圖1 示例
2.1 啟動**服務
首先需要更改配置檔案:指定使用者,在etc/mosquitto中的mosquitto.conf.example中將user mosquitto更改到當前使用者,並去掉前面的#號,另存為mosquitto.conf
並使用命令mosquitto -c /etc/mosquitto/mosquitto.conf -d
mosquitto -v
【-v】列印更多的除錯資訊
2.2 訂閱主題
mosquitto_sub -v -t sensor
【-t】指定主題,此處為sensor
【-v】列印更多的除錯資訊
2.3 發布內容
mosquitto_pub -t sensor -m 12
【-t】指定主題
【-m】指定訊息內容
2.4 執行結果
當發布者推送訊息之後,訂閱者獲得以下內容
sensor 12
而**伺服器控制台中會出現——連線、訊息發布和心跳等除錯資訊。通過**伺服器的除錯輸出可以對mqtt協議的相關過程有所了解。
CentOS 安裝Mosquitto及測試
系統資訊,阿里雲伺服器 安裝工具 yum install gcc gcc c yum install openssl devel yum install c ares devel yum install libuuid devel yum install wget yum install cmake...
安裝mosquitto時openssl版本
安裝mosquitto前,電腦的openssl版本是1.1.1a,安裝時一直報以下錯誤 make 1 正在進入目錄 work mqtt mosquitto 1.5.5 client cc c pub client.c o pub client.o wall ggdb o2 i.i.lib dvers...
二 Mosquitto 使用說明
1 建立使用者 groupadd mosquitto useradd g mosquitto mosquitto 2 程式配置 mv etc mosquitto mosquitto.conf.example etc mosquitto mosquitto.conf 3 配置說明 服務程序的pid p...