mosquitto 安裝與使用

2021-07-12 06:20:31 字數 2604 閱讀 6231

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...