linux 安装 mosquitto 增加 websocket 支持

安装相关依赖

# yum -y install wget

# yum -y install openssl-devel

# yum -y install gcc-c++

# yum -y install cmake

安装libwebsockets

wget https://github.com/warmcat/libwebsockets/archive/v1.5-stable.zip

# yum -y install unzip

# unzip v1.5-stable.zip

# mkdir -p /usr/local/websocket

# mv libwebsockets-1.5-stable /usr/local/websocket

# cd /usr/local/websocke/libwebsockets-1.5-stable

# cmake .

# make

# make install

# ln -s /usr/local/lib/libwebsockets.so.5 /usr/lib/libwebsockets.so.5

# ldconfig

安装mosquitto

1、设置安装目录

# cd /usr/local/

2、开始下载源包

# wget https://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz

3、解压

解压后得到mosquitto-1.6.8文件目录

# tar zxvf mosquitto-1.6.8.tar.gz

4、安装MQTT运行依赖环境

以下可选扩展功能,不安装也不影响MQTT使用,只是缺少部分对应的功能

c-ares(用于DNS-SRV支持,默认禁用)

tcp-wrappers(可选,包名libwrapp0 dev)

lib-uuid(支持为每个连接客户端生成唯一uuid)

下面安装扩展功能:

# yum install -y c-ares-devel

# yum install -y uuid-devel

# yum install -y libuuid-devel

5、修改config.mk配置文件

# cd /usr/local/mosquitto-1.6.8

# vim config.mk

修改以下为yes,如果前面有#就去掉,保存退出。

WITH_SRV:=yes

WITH_WEBSOCKETS:=yes

WITH_ADNS:=yes

6、编译安装

# make

# make install

7、增加webScokets支持

如果要开启webSockets,它是支持的。但是要显式的加入mqtt协议及端口,在mosquitto.conf里面添加:

#MQTT协议

port 8893

protocol mqtt

#websockets协议

listener 8894

protocol websockets

#如果需要查看websockets日志还可以加入以下面,上面有提过。

log_type websockets

websockets_log_level 0

启动

mosquitto -c /usr/local/mosquitto-1.6.8/mosquitto.conf -d

出现如下错误

方法一:修改mosquitto目录下mosquitto.conf文件,在#user mosquitto处添加当前运行的用户,如当前用户为root,则添加root

方法二:执行 adduser mosquitto

执行成功:

8、增加权限

复制文件

cp pwfile.example pwfile.conf

cp aclfile.example aclfile.conf

less mosquitto.conf

修改前 #allow_anonymous true

修改后 allow_anonymous false

修改前 #password_file

修改后 password_file  /usr/local/mosquitto-1.6.8/pwfile.conf

修改前 #acl_file

修改后 acl_file /usr/local/mosquitto-1.6.8/aclfile.conf

增加用户:

用户名 :xdmqtt_pub

用户名:xdmqtt_sub

mosquitto_passwd /usr/local/mosquitto-1.6.8/pwfile.conf xdmqtt_pub 回车输入两次密码完成

mosquitto_passwd /usr/local/mosquitto-1.6.8/pwfile.conf xdmqtt_sub 回车输入两次密码完成

修改权限:

less aclfile.conf

增加如下代码

user xdmqtt_pub

topic readwrite zzDevice/#

topic readwrite test/#

topic readwrite homecare-eoms/#

user xdmqtt_sub

topic readwrite zzDevice/#

topic readwrite test/#

topic readwrite homecare-eoms/#

8、测试

监听:

mosquitto_sub -h 127.0.0.1 -u xdmqtt_sub -P Njxdznkj20191218 -p 8893 -t homecare-eoms

发送:

mosquitto_pub -h 127.0.0.1 -u xdmqtt_sub -P Njxdznkj20191218 -p 8893 -t homecare-eoms -m teststest

可能出现如下情况:

mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决方法如下:

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

ldconfig

监听:

发送:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值