mqtt服务搭建

MQTT 官网:https://mosquitto.org/
官网 资源:https://mosquitto.org/files/source/

系统版本CentOS Linux release 7.6.1810 (Core) X64

Mqtt服务搭建

1.设置保存安装包路径
#cd /usr/local/src

2、下载源包
官网资源: https://mosquitto.org/files/source/
#wget https://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz

3、解压
解压后得到mosquitto-1.6.7文件目录
#tar zxvf mosquitto-1.6.7.tar.gz
#mv mosquitto-1.6.7 /usr/local/mosquitto-1.6.7

4、安装MQTT运行依赖环境

1)以下三个必须安装,不然make时无法通过。 另外安装MQTT之前,我们也可以# cat compiling.txt文件阅读一下官方的说明。

#yum -y install openssl-devel
#yum -y install gcc-c++
#yum -y install cmake

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

c-ares(用于DNS-SRV支持,默认禁用)c-ares官网:http://c-ares.haxx.se

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

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

libwebsockets(可选,默认禁用,版本1.3及以上,安装可支持websocket功能) 关于MQTT和Websocket的区别,有兴趣可以到这个链接了解一下。

下面安装扩展功能:
#yum install -y c-ares-devel
#yum install -y uuid-devel
#yum install -y libuuid-devel
#yum install -y libwebsockets

如果想了解安装的库在哪个位置,# rpm -ql libuuid
可知道哪些文件是通过yum指令安装来的,卸载包使用# yum remove
libuuid

需要查询是否已经安装RPM包可输入# rpm -q libuuid-devel

5、修改config.mk配置文件

#cd /usr/local/mosquitto-1.6.7# vim config.mk

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

WITH_SRV:=yes

WITH_WEBSOCKETS:=yes

WITH_ADNS:=yes

6、编译安装
#make #make install

以上执行# make时,如果不报错的话,就跳过以下说明。如果报错: mosquitto.c:49:29: fatal error: libwebsockets.h: No such file or
directory

那么说明libwebsockets 没有安装好,执行卸载# yum remove libwebsockets,下载新的源包的进行安装,步骤如下。

源包链接:https://github.com/warmcat/libwebsockets
我们选择一个版本复制zip下载链接,这里我选择的是1.5版本。

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

yum -y install unzip

unzip libwebsockets-1.5.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

执行以上安装ibwebsockets后,重新编译安装MQTT
#cd /usr/local/mosquitto-1.6.7 # make # make
install 这3个命令前面已经列出过了。

7、启动

mosquitto -c /etc/mosquitto/mosquitto.conf -d -p 1883 –v //默认端口是1883

8、启动MQTT报错解决

错误信息:mosquitto: error while
loading shared libraries: libwebsockets.so.5: cannot open shared object file:
No such file or directory

解决方法:使用whereis可以查找 libwebsockets.so.5的所在路径,建立一个软链接到/usr/lib 下即可。

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

9、测试

打开2个shell 窗口,登录你的linux账号。

订阅:mosquitto_sub -t mtopic -h 47.0.0.0 -u sun_read

发布:mosquitto_pub -t mtopic -h 47.0.0.0 -m “我发消息给你了”

订阅端)客户端启动:

#mosquitto_sub -h
192.168.1.100 -t mtopic -u admin -P 123456

(发布者)客户端启动:

#mosquitto_pub -h 192.168.1.100 -t mtopic -u
admin -P 123456 -m “test”

-u 用户

–p 密码

–t 主题

–m 内容

//启动测试:

2、启动测试

创建用户:

sudo groupadd mosquitto

sudo useradd -g mosquitto mosquitto

这里要是出现什么存在不存在的问题,一定是你copy错了

程序配置:

mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf

启动程序:

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

默认端口为1883

mosquitto.conf :此文件是配置用户名密码的,一般采用的是匿名登录模式,正式系统是需要验证的

文件中: 文件路径 :cd /etc/mosquitto/

allow_anonymous
false # 不允许匿名

添加用户名密码

mosquitto.conf :此文件是配置用户名密码的,一般采用的是匿名登录模式,正式系统是需要验证的

文件中: 文件路径 :cd /etc/mosquitto/

在这里插入图片描述

allow_anonymous false #不允许匿名

添加用户名密码

在这里插入图片描述
在这里插入图片描述

注意:如果在mosquitto_sub -t hello 提示找不到libmosquitto.so.1的话,在下输入以下指令修改一下libmosquitto.so的位置:
sudo ln -s /usr/local/lib/libmosquitto.so.1
/usr/lib/libmosquitto.so.1
sudo ldconfig
另一个(发布)窗口输入:
mosquitto_pub -t hello -h localhost -m “hello world”

在这里插入图片描述
在这里插入图片描述

遇到的问题:
1.错误解决 创建mosquitto.conf、pwfile文件
程序配置://可能没有直接生产 .conf 文件
如果该目录下没有mosquitto.conf 和 pwfile

执行:
#cp mosquitto.conf.example mosquitto.conf 或mv
#cp pwfile.example pwfile
mv /etc/mosquitto/mosquitto.conf.example
/etc/mosquitto/mosquitto.conf

2、错误解决
在安装过程中,或测试过程中可能会遇到错误:
mosquitto_sub: error while loading shared
libraries: libmosquitto.so.1: cannot open shared object file: No such file or
directory

解决方法:
#cat /etc/ld.so.conf
#echo “/usr/local/lib”>>/etc/ld.so.conf
#ldconfig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值