記錄mosquitto在Linux環境下的部署/安裝/使用/測試過程

Mosquitto

mosquitto是一款實現了 MQTT v3.1 協議的開源的消息代理服務軟件.
其提供了非常輕量級的消息數據傳輸協議,採用發佈/訂閱模式進行工作,可用於物聯設備、中間件、APP客戶端之間的消息通訊。

mosquitto官網
http://mosquitto.org/
關於mqtt協議可參考
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

基礎準備

Linux內核版本:Centos 6.5_final_64bit

安裝基礎軟件
yum install gcc-c++
yum install cmake
yum install openssl-devel //mosquitto默認支持openssl

下載程序

官網下載

wget http://mosquitto.org/files/source/mosquitto-1.4.4.tar.gz
tar -xzvf mosquitto-1.4.4.tar.gz
cd mosquitto-1.4.4

編譯安裝

編譯選項

當前的程序目錄可直接編譯,在編譯之前需根據需要做一定的配置,否則會出現 xxx.h找不到的情況。
vim config.mk
config.mk包括了多個選項, 可按需關閉或開啓,但一旦開啓則需要先安裝對應的模塊
模塊說明

選項

說明

make出錯信息

WITH_SRV
啓用c-areas庫的支持,一個支持異步DNS查找的庫
見http://c-ares.haxx.se
missing ares.h
WITH_UUID
啓用lib-uuid支持,支持爲每個連接的客戶端生成唯一的uuid
missing uuid.h
WITH_WEBSOCKETS
啓用websocket支持,需安裝libwebsockets
對於需要使用websocket協議的應用開啓

missing libwebsockets.h

安裝c-areas

wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
sudo make install

安裝lib-uuid

yum install libuuid-devel

安裝libwebsockets

wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz
tar zxvf v1.3-chrome37-firefox30.tar.gz
cd libwebsockets-1.3-chrome37-firefox30
mkdir build; cd build;
cmake .. -DLIB_SUFFIX=64
make install

開始安裝mosquitto

cd /usr/local/mosquitto-1.4.9
make
make install
至此程序已經安裝完畢!

啓動與測試

創建用戶

mosquitto默認以mosquitto用戶啓動,可以通過配置文件修改
groupadd mosquitto
useradd -g mosuqitto mosquiotto

程序配置

mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
配置說明
# 服務進程的PID
#pid_file /var/run/mosquitto.pid
 
# 服務進程的系統用戶
#user mosquitto
 
# 服務綁定的IP地址
#bind_address
 
# 服務綁定的端口號
#port 1883
 
# 允許的最大連接數,-1表示沒有限制
#max_connections -1
 
# 允許匿名用戶
#allow_anonymous true
//關於詳細配置可參考
http://mosquitto.org/man/mosquitto-conf-5.html

啓動

mosquitto -c /etc/mosquitto/mosquitto.conf -d

 調測步驟:

1、先開啓一個客戶端,模擬broker

 2、再開啓一個客戶端,模擬訂閱

3、最後開啓一個客戶端,模擬發佈

4、訂閱界面可以實時收到發佈消息

FAQ

1、在啓動過程中報錯:

 Error: Invalid user 'mosquitto'.

  解決方法:

2、報錯./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

[root@localhost ld.so.conf.d]# find / -name "libwebsockets.so.8"
/usr/local/lib64/libwebsockets.so.8
/usr/local/libwebsockets-2.0.2/build/lib/libwebsockets.so.8
[root@localhost ld.so.conf.d]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
[root@localhost ld.so.conf.d]# echo "/usr/local/lib">>/etc/ld.so.conf
[root@localhost ld.so.conf.d]# echo "/usr/local/libwebsockets-2.0.2/build/lib">>/etc/ld.so.conf
[root@localhost ld.so.conf.d]# ldconfig
[root@localhost ld.so.conf.d]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
/usr/local/libwebsockets-2.0.2/build/lib

參考文檔

https://www.cnblogs.com/littleatp/p/4835879.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章