1、下載mosquitto源碼
官網下載地址:https://mosquitto.org/download/
選擇最新的1.5.5.版本下載。
2、編譯
解壓源碼包:
# tar axvf mosquitto-1.5.5.tar.gz
# cd mosquitto-1.5.5
# make
若出現如下提示:
這是因爲找不到openssl頭文件所導致的。根據自己的需求,是否需要進行ssl加密,若不需要,註釋config.mk文件中的 WITH_TLS:=YES 選項即可。
若需要進行ssl加密,則首先需要確認自己是否安裝openssl庫,可使用find命令進行查詢。
# find /usr/ -name "openssl"
若沒有安裝,請參考:https://blog.csdn.net/fangye945a/article/details/86658621 進行openssl安裝。
若已經安裝,則需修改工程目錄下config.mk文件,添加openssl的在你電腦中的庫路徑和頭文件路徑即可,如下所示:
若需要編譯mosquito靜態庫需要將WITH_STATIC_LIBRARIES設置爲yes,如下所示。
修改後保存退出,即可進行編譯、安裝。
# make
# sudo make install
若遇到其他依賴問題可參考:
https://blog.csdn.net/xukai871105/article/details/39252653
3、 搭建mqtt服務器
進入mosquitto配置目錄,修改配置文件:
# cd /etc/mosquitto
# cp mosquitto.conf.example mosquitto.conf //拷貝一份配置文件示例
# sudo vim mosquitto.conf //修改mosquitto配置文件
設置服務器端口號:
若mqtt服務器需要設置賬號和密碼,則需設置 允許匿名訪問 爲false
指定登錄驗證密碼文件:
也可指定mqtt服務器主題與用戶之間的關係文件(可限定某個用戶只能訂閱設置的特定的主題,若不願限制不設置即可)
配置topic與用戶的關係:
如下含義爲:只允許fangye用戶訂閱主題名以hello/開頭的主題。
創建密碼文件:
指定配置文件後臺允許mqtt服務程序。
# mosquitto -c /etc/mosquitto/mosquitto.conf &
如下提示則表示運行成功
4、訂閱、發佈測試
訂閱:
# mosquitto_sub -h 192.168.10.106 -p 1883 -u fangye -P 123 -t hello/world
發佈:
# mosquitto_pub -h 192.168.10.106 -p 1883 -u fangye -P 123 -t hello/world -m 123
測試結果:
若訂閱的主題名稱不符合之前acl文件中設置的規則,訂閱能夠成功,但是收不到發佈到對應主題的消息,如圖:
若提示:
這是因爲mosquitto庫沒有在系統環境變量路徑下,需在/usr/lib下建立mosquitto庫的軟鏈接,如下所示:
# sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1