mosquitto 服務器環境安裝及前端websocket支持配置

第一步:安裝前準備用到的依賴包:
$ sudo apt-get update
$ sudo apt-get install build-essential python quilt devscripts python-setuptools python3
$ sudo apt-get install libssl-dev
$ sudo apt-get install cmake
$ sudo apt-get install libc-ares-dev
$ sudo apt-get install  uuid-dev
$ sudo apt-get install daemon

 

第二步:下載並編譯安裝 libwebsockets(下載到 /home/mqtt目錄下)

// libwebsockets的各版本下載地址可以去GitHub:https://github.com/warmcat/libwebsockets/releases
wget https://github.com/warmcat/libwebsockets/archive/v3.2.1.tar.gz
tar -zxvf libwebsockets_v3.2.1.tar.gz
cd libwebsockets_v.3.2.1
mkdir build
cd build
cmake ..
make install

 

 
第三步建立軟連接:
nano /etc/ld.so.conf   // 可以看到  include ld.so.conf.d/*.conf
// 添加一行第二步中libwebsocket編譯後的lib的路徑
/home/mqtt/libwebsockets_v.3.2.1/build/lib

// 保存後,執行
ldconfig

 

 
(注意:由於mosquitto在配置支持websocket時,需要上述的libwebsocket,所以如果沒有第三步的建立軟連接,則在後續操作中,會有下圖錯誤)
 
第四步:下載並編譯安裝最新版 mosquitto ( https://mosquitto.org/download/
wget https://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz
tar zxvf mosquitto-1.6.8.tar.gz
cd mosquitto-1.6.8
nano confi.mk
// 將config.mk 的WITH_WEBSOCKETS:=NO 修改 爲 WTIH_WEBSOCKETS:=yes
WITH_WEBSOCKETS:=yes
// 保存修改,開始編譯安裝 mosquitto, make && make install
make
make install

// 安裝成功後,mosquitto的配置文件將在 /etc/mosquitto
cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf
nano mosquitto.conf
// 在Default listener 這裏添加
port  1883          
listener 9001
protocol websockets
// 修改之後保存並退出

 

 
 
第五步:啓動mosquitto服務
// 添加MOSQUITTO用戶
adduser mosquitto
// mosquitto -c /etc/mosquitto/mosquitto.conf 前臺啓動方式
mosquitto -c /etc/mosquitto/mosquitto.conf -d  //後臺啓動方式(推薦)

 

 
補充:
// 如果服務器是阿里雲等雲服務器
還需要去雲端控制檯,爲服務器防火牆添加規則,即開放1883/9001兩個端口,這樣服務器的兩個端口對外開放
 
// windows下測試 1883端口或者9001端口是否可以ping通
1. 下載tcping這個小工具:https://elifulkerson.com/projects/tcping.php  (下載地址)
2. 然後把下載好的工具tcping.exe,放到電腦的C盤>Windows>System32 下面就行
3. 重新打開CMD窗口,輸入命令:tcping 指定的IP或者域名 端口號 。輸入完回車就可以查看這個IP的端口是否是通着的。比如:tcping 10.20.66.37 8090
 
// Linux下的方法
在linux下,我們就直接可以用telnet命令來測試端口是否暢通。具體用法:telnet 指定的IP或者 域名 端口號.
比如:telnet 10.20.66.37 8090
 
// Ubuntu終端命令查看端口占用及關閉
查看已經連接的服務端口(ESTABLISHED):netstat -a
查看所有的服務端口(LISTEN,ESTABLISHED): netstat -ap
 
查看指定端口,可以結合grep命令:netstat -ap | grep 8080        
也可以使用lsof命令:lsof -i:8080
 
關閉端口使用
若要關閉使用這個端口的程序,使用kill + 對應的pid::   kill -9 PID號
 
ps:kill就是給某個進程id發送了一個信號。默認發送的信號是SIGTERM,而kill -9發送的信號是SIGKILL,即exit。exit信號不會被系統阻塞,所以kill -9能順利殺掉進程。
 
 
參考文獻:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章