linux配置mqtt支持websocket并配置用户名和密码

记录一次老大叫我安装mqtt

因为在网上找的博客参差不齐,在安装的过程中总是会遇到各种奇奇怪怪的问题,所以我也在反复的安装和卸载的过程中总结了一下,

1、安装依赖包

#yum -y install wget
#yum -y install openssl-devel
#yum -y install gcc-c++
#yum -y install cmake
扩展类依赖包
#yum install -y c-ares-devel
#yum install -y libuuid-devel

2、安装libwebsockets

在/usr/local创建mqtt文件夹

mkdir /usr/local/mqtt
wget https://github.com/warmcat/libwebsockets/archive/v3.2.1.tar.gz
tar -zxvf v3.2.1.tar.gz
cd libwebsockets-3.2.1/
mkdir build
cd build
cmake ..
make
make install

注意:先查看/usr/local/lib/libwebsockets.so.15号码,对应自己电脑的
在这里插入图片描述

再执行软连接()

ln -s /usr/local/lib/libwebsockets.so.15 /usr/lib/libwebsockets.so.15
ldconfig

3、安装mosquitto

cd  /usr/local/mqtt
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

mosquitto默认不支持websockets,将下面的配置文件改为yes
在这里插入图片描述

vim config.mk

编译安装

make
make install

4、增加webScokets支持

进入目录

cd /etc/mosquitto

开启webSockets支持,在mosquitto.conf里面添加:

vim mosquitto.conf

添加以下字段:

#MQTT协议
port 1883
#websockets协议
listener 1884
protocol websockets

#禁止匿名登录
allow_anonymous false
#存放用户的文件
password_file  /etc/mosquitto/pwfile.example
#权限文件
acl_file  /etc/mosquitto/aclfile.example

图片
在这里插入图片描述

5、创建用户名和密码、打开命令窗口 键入如下命令

mosquitto_passwd -c /etc/mosquitto/pwfile.example   自定义用户名

输入密码:自定义密码

在这里插入图片描述

6、配置权限

cd /etc/mosquitto

进入编辑模式

vim aclfile.example 

添加如下内容

#用户tsinghong对主题tsinghong有发布权限
user tsing
topic write topicmosq/#

#用户tsinghong对主题tsinghong有订阅权限
user tsing
topic read topicmosq/#

7、启动mosquitto

mosquitto -c /etc/mosquitto/mosquitto.conf

在这里插入图片描述
这样是正常运行

另外打开两个窗口,
订阅窗口:输入

mosquitto_sub -h 127.0.0.1  -t topicmosq-u tsing -P 123456

如果出现下图红线圈的情况
在这里插入图片描述
解决办法:
进入/usr/local/mqtt/mosquitto-1.6.8/lib

cd /usr/local/mqtt/mosquitto-1.6.8/lib

将编译之后的libmosquitto.so.1 拷贝到目录/usr/local/lib下,执行如下命令:

cp libmosquitto.so.1  /usr/local/lib

然后再执行命令:

ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

最后执行

ldconfig

重启mosquitto
Ctrl+c结束服务

mosquitto -c /etc/mosquitto/mosquitto.conf

发布窗口:输入

#mosquitto_pub -h 127.0.0.1 -t topicmosq-u tsing -P 123456 -m "消息发送"

查看订阅窗口是否接受有信息

关掉服务窗口ctrl+c
使用后台启动服务,执行如下命令

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

8、进入 http://coolaf.com/zh/tool/chattest 网页测试websocket是否成功

在这里插入图片描述

测试成功啦!!!


版权声明:本文为weixin_43218119原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。