相关资源安装包

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_MQTT

链接: https://pan.baidu.com/s/1q6-7blt0_gC719KMJ30_2A提取码: ur0e

1、先安装websocket再安装mosquitto,首先先安装相关依赖库

apt-get install libssl-dev libc-ares-dev uuid-dev

2、源码编译安装libwebsockets,将libwebsockets安装到/usr/local目录

apt-get install cmake
tar -zxvf libwebsockets-v1.5-stable.tar.gz -C /usr/local
cd /usr/local/libwebsockets-v1.5-stable 
mkdir build 
cd build 
cmake .. 
make 
make install

3、源码形式编译安装的libwebsockets编译后默认把相关库安装到了/usr/local/lib目录下,为了编译mosquitto时能顺利调用到/usr/local/lib目录的库文件,需要修改系统库目录搜索路径。

打开/etc/ld.so.conf文件vi /etc/ld.so.conf,如下图在文件末尾添加一行/usr/local/lib,保存退出后,执行ldconfig命令。

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_docker容器的宝塔面板如何映射出去_02

4、确保没有旧的mosquitto-1.4.5。如果在之前安装过不支持websocket协议的mosquitto-1.4.5,应先卸载上一次已经安装的mosquitto-1.4.5的相关可执行程序与库文件,并执行make clean清除上一次编译的目标文件;

卸载已经安装的mosquitto-1.4.5,需要从源码位置执行make uninstall命令,prefix用于指定安装目录:

cd /usr/local/mosquitto-1.4.5
make prefix=/usr uninstall
make clean

5、安装mosquitto-1.4.5,先解压并进入源码目录:

cd /root
tar zxfv mosquitto-1.4.5.tar.gz -C /usr/local
cd /usr/local/mosquitto-1.4.5

6、修改config.mk文件(第68行,改为WITH_WEBSOCKETS:=yes)

vi config.mk

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_docker容器的宝塔面板如何映射出去_03

7、编译源码

make prefix=/usr install #安装到/usr目录

8、把源码目录下的默认配置文件复制到/etc/mosquitto目录,修改配置文件mosquitto.conf,增加websocket端口与协议

cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf
vi mosquitto.conf

在/etc/mosquitto/mosquitto.conf 的“Default Listener”节添
加如下几行,即指定websocket运行在9001端口:

port 1883
listener 9001
protocol websockets

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_mosquitto_04

9、如果系统不存在mosquitto账号,请先建立mosquitto运行时所需要的用户账号

useradd mosquitto

10、指定默认配置文件启动运行mosquitto,使其支持websocket协议

mosquitto -v -c /etc/mosquitto/mosquitto.conf

11、基于websocket协议的MQTT消息通信演示测试

1)切换成NAT模式

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_websocket_05

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_websocket_06

2)使Windows可以ping通linux

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_websocket_07

3)启动mosquitto

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_docker容器的宝塔面板如何映射出去_08

4)执行订阅和发布:

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_mosquitto_09

12、MQTTBox测试,Protocal设置为ws,Host设置为mqtt服务器地址(即liunx ip地址)加上端口号:192.168.199.129:9001

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_websocket_10

Mqttbox订阅一个主题topicD

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_mosquitto_11


通过终端发布程序mosquitto_pub发布主题消息,

Mqttbox订阅端接收到消息

docker容器的宝塔面板如何映射出去 宝塔面板安装websocket_mosquitto_12