目录
前言
MQTT协议广泛用于物联网设备的消息传输,比如现在应用广泛的低功耗传感器,手机、嵌入式设备,微型控制器等移动设备。Mosquitto是轻量级的MQTT协议开源消息代理服务器。
安装mosquitto
sudo apt-get install mosquitto
查看mosquitto服务状态
sudo service mosquitto status
开启/停止mosquitto服务
sudo service mosquitto start
sudo service mosquitto stop
本机测试:
安装mosquitto客户端
sudo apt-get install mosquitto-clients
打开一个终端,订阅主题
mosquitto_sub -h localhost -t "mqtt" -v
打开另一个终端,发布主题
mosquitto_pub -h localhost -t "mqtt" -m "Hello2 MQTT"
配置
安装完成后, 配置文件都在/etc/mosquitto
目录下
主配置文件mosquitto.conf
配置用户验证信息
# 不允许匿名
allow_anonymous false
# 配置用户密码文件
password_file /etc/mosquitto/pwfile
# 配置topic和用户
acl_file /etc/mosquitto/acl
添加用户信息命令,根据提示输入两边密码
mosquitto_passwd -c /etc/mosquitto/pwfile username
完后会在/etc/mosquitto/pwfile
目录下生成名pwfile
文件,里边即是用户信息
权限配置
vim /etc/mosquitto/acl
# 李雷只能发布以test为前缀的主题,订阅以$SYS开头的主题即系统主题
user lilei
topic write test/#
topic read $SYS/#
# 韩梅梅只能订阅以test为前缀的主题
user hanmeimei
topic read test/#
- 备注:配置完成后重启
发布使用mosquitto_pub
命令,订阅使用mosquitto_sub
命令。常用参数介绍:
参数 | 描述 |
---|---|
-h | 服务器主机,默认localhost |
-t | 指定主题 |
-u | 用户名 |
-P | 密码 |
-i | 客户端id,唯一 |
-m | 发布的消息内容 |
订阅
mosquitto_sub -h localhost -t "test/#" -u hanmeimei -P 123456 -i "client1"
发布
mosquitto_pub -h localhost -t "test/abc" -u lilei -P 123456 -i "client3" -m "How are you?"
订阅系统主题
# 订阅客户端存活连接数
mosquitto_sub -h localhost –t '$SYS/broker/clients/active' -u lilei -P 123456 -i "client2"