安装mosquitto 兼容mqtt websockets

参考链接:https://www.cnblogs.com/yaojiayuan/p/11067900.html

原文是单支持websockets,我略有修改和备注一些注意事项

本文档基于centos7部署

部署前准备:

安装wget命令

yum -y install wget

安装gcc-c++

yum install gcc-c++

安装cmake

yum install cmake

安装openssl-devel

yum install openssl-devel

安装libwebsockets

mkdir libwebsockets

cd libwebsockets

wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz

tar -zxvf v1.3-chrome37-firefox30.tar.gz

cd libwebsockets-1.3-chrome37-firefox30

mkdir build

cd build

cmake ..

make install

创建软连接

ln -s /usr/local/lib/libwebsockets.so.4.0.0 /usr/lib/libwebsockets.so.4.0.0

ldconfig

安装mosquitto

mkdir mqtt

cd mqtt

wget http://mosquitto.org/files/source/mosquitto-1.6.3.tar.gz

tar -zxvf mosquitto-1.6.3.tar.gz

cd mosquitto-1.6.3

修改config.mk文件

vi config.mk

WITH_WEBSOCKETS:=yes

make

make install

创建软连接

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

ldconfig

进入/etc/mosquitto目录修改配置文件

cd /etc/mosquitto

复制mosquitto.conf.example配置文件

cp mosquitto.conf.example mosquitto.conf

cp pwfile.example pwfile.conf

cp aclfile.example aclfile.conf

vi mosquitto.conf

修改前 #allow_anonymous true

修改后 allow_anonymous false (这个表示不允许匿名登录,可不设置,如设置,必须下面要建用户和对应密码)

修改前 #password_file

修改后 password_file  /etc/mosquitto/pwfile.conf(这个是用户和对应密码配置文件,保存当前的用户和密码的)

修改前 #acl_file

修改后 acl_file /etc/mosquitto/aclfile.conf(这个建议不修改,这个优先决定用户对每个主题的读写权限,如果设置不正确会导致订阅/发布不到消息,但是没有任何失败提示,是个大坑!建议还是#acl_file 这样每个用户都有每个主题的订阅发布权限)

修改前 #protocol mqtt (注意:这个是# Extra listeners里面的 ,不是# Default listener里面的,# Default listener里面的 #protocol mqtt不需要修改!)

修改后 protocol websockets

修改前 #listener  port-number

修改后listener  9001(这个端口可以自己设,是使用websockets需要监听的端口)

安装mosquitto 兼容mqtt websockets_第1张图片

添加mosquitto 用户名密码

mosquitto_passwd /etc/mosquitto/pwfile.conf mqtttest 回车输入两次密码完成(mqtttest 用户名,可以自己定义,然后后面输入的密码是该账户对应的密码)

如果上面mosquitto.conf文件有开启#acl_file,需要指定你用户的操作权限:

修改用户权限

vi aclfile.conf

添加用户配置

user mqtttest  (user mqtttest 指设置mqttest用户的权限)

topic readwrite mqtttopic (此处mqtttest可以发布\订阅mqtttopic这个主题!!,如果没有补充其他主题,则不能订阅/发布topic123等等其他的主题!!

//----------------如果有开启防火墙才需要设置,没有开启防火墙不需要设置--------

打开外部访问端口

--permanent永久有效否则重启失效

firewall-cmd --zone=public --add-port=1883/tcp --permanent

添加端口后重新载入

firewall-cmd --reload

//--------------------------------------------------------------------------------------------------------

创建用户测试

groupadd mosquitto

useradd -g mosquitto mosquitto

启动命令

mosquitto -c /etc/mosquitto/mosquitto.conf

如果想后台运行则: mosquitto -c /etc/mosquitto/mosquitto.conf &

下面提示开启成功!

你可能感兴趣的:(mqtt,嵌入式)