Ubuntu18.04系统安装并配置mosquitto
一、什么是MQTT
各操作系统安装指引:https://mosquitto.org/download/
-
一款实现了消息推送协议 MQTTv5.0, v3.1.1, v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。
-
他的英文全称
Message Queuing Telemetry Transport
,翻译过来就是“消息队列遥测传输”,是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。 -
MQTT
是一种通讯协议。而mosquitto
是基于MQTT
协议衍生的一个开源的broker。 -
mosquitto
分为三个部分。pub
(发布者),broker
(代理、服务器),sub
(订阅者),他们之间的逻辑关系为pub->broker->sub
;pub
将发送主题和信息发送给broker
,sub
从broker
订阅主题得到信息; -
目前支持MQTT的服务器中间件有EMQTT、Mosquitto、Apollo
-
其他服务器代理实现:https://github.com/mqtt/mqtt.github.io/wiki/servers
二、安装mosquitto
1、使用apt安装mosquitto
# 更新安装源
sudo apt update
# 安装mosquitto
sudo apt install mosquitto -y
2、查看服务状态
service mosquitto status
3、配置
1、修改配置
#修改配置文件
sudo vim /etc/mosquitto/mosquitto.conf
pid_file /var/run/mosquitto.pid
#消息持久存储
persistence true
persistence_location /var/lib/mosquitto/
# 日志文件
log_dest file /var/log/mosquitto/mosquitto.log
#其他配置
include_dir /etc/mosquitto/conf.d
#禁止匿名访问
allow_anonymous false
#认证配置
password_file /etc/mosquitto/pwfile
#权限配置
acl_file /etc/mosquitto/aclfile
2、创建文件pwfile
和aclfile
sudo touch /etc/mosquitto/pwfile
sudo touch /etc/mosquitto/aclfile
3、认证配置pwfile
使用用户创建命令创建用户:
sudo mosquitto_passwd /etc/mosquitto/pwfile admin # admin是用户名
4、权限配置aclfile(此处我没有配置)
编辑aclfile文件:sudo vim /etc/mosquitto/aclfile
user1#只能发布以test为前缀的主题,订阅以$SYS开头的主题即系统主题
user user1
topic write test/#
topic read $SYS/#
user2#只能订阅以test为前缀的主题
user user2
topic read test/#
5、修改完重启服务:service mosquitto restart
4、使用客户端工具测试
注意:由于我添加了权限配置文件,而没有编辑文件,所有文件内容为空,导致没有权限。如果没有配置权限,需要编辑 vim /etc/mosquitto/mosquitto.conf
配置文件注释掉其中的权限配置。
测试成功!
三、windows安装
参考:https://www.cnblogs.com/zkwarrior/p/10972464.html
四、参考链接
https://blog.csdn.net/KingRing_/article/details/115102149
https://www.cnblogs.com/ioufev/articles/15293834.html
https://www.cnblogs.com/qumogu/p/16007609.html
https://blog.csdn.net/yiyihuazi/article/details/122873234