MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理服务器。MQTT服务器可以分为两类:一类是商用型MQTT服务,如阿里云、华为云、腾讯云等云平台提供的MQTT服务;另一类是开源型MQTT服务,使用开源软件自行搭建服务器提供MQTT服务,如EMQX、Mosquitto、Apollo等。
这里使用树莓派3B+平台和Mosquitto搭建MQTT服务平台。
一、服务安装
1、依赖环境安装
sudo apt-get install libssl-dev uuid-dev
2、下载Mosquitto源码
官网链接:http://mosquitto.org/files/source/
可以修改版本号选择下载对应的版本,这里下载当前最新版本2.0.9。
wget http://mosquitto.org/files/source/mosquitto-2.0.9.tar.gz
3、编译安装
# 解压
tar zxfv mosquitto-2.0.9.tar.gz
# 进入目录
cd mosquitto-2.0.9
# 编译源码
make
# 安装
make install
# 链接并更新动态库
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig
二、启动服务
使用以下命令启动MQTT服务,可以根据需要选择后台运行服务。
# -v:打印更多信息
mosquitto -v
三、服务验证
MQTT服务平台充当代理服务器的作用,主要负责对收到的消息进行分类转发,调整验证MQTT协议,需要对应的订阅端和发布端。这里使用mosquitto_sub和mosquitto_pub充当订阅端和发布端。
发布端发布的数据有两部分组成:主题+消息,而订阅端会收到订阅的消息,未订阅的消息不会收到。
1、订阅端
# -v:打印更多信息
# -t:订阅主题
mosquitto_sub -v -t Test01
2、发布端
# -t:发布的主题
# -m:发布的消息
mosquitto_pub -t Test01 -m "Test Message01”
注:验证时可以开启三个终端:(1)前台运行服务端;(2)前台运行订阅段;(3)前台运行发布端。可以根据需要开启多个订阅端和发布端。