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能顺利杀掉进程。
 
 
参考文献:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章