环境
CentOS 7.6 64bit、mosquitto-1.6.10
官网简介
Eclipse Mosquitto 是一个开源(EPL/EDL 许可)的、轻量级的消息代理,实现了 MQTT 5.0、3.1.1 和 3.1 的协议版本。
Mosquitto 项目提供了一种使用发布/订阅模型执行消息传递的轻量级方法。适用于物联网消息传递,例如低功耗传感器或移动设备(如电话、嵌入式计算机或微控制器)。还提供了一个用于实现 MQTT 客户端的 C 库,以及非常流行的 mosquitto_pub 和 mosquitto_sub 命令行 MQTT 客户端。
安装
下载地址 mosquitto.org/files/binar…,本例在云环境中使用yum安装,不用下载上传
- 添加 EPEL 软件库
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm - 查看安装的软件库信息
yum repolist all | grep enabled,本机没查看成功,报了Repository epel is listed more than once in the configuration,貌似跟EPEL源重复有关,查看源配置文件所在目录cd /etc/yum.repos.d - 查找 mosquitto 软件包
yum list all | grep mosquitto - 查看 mosquitto 信息
yum info mosquitto - 安装 mosquitto 软件包
yum -y install mosquitto - 控制台方式启动 mosquitto,测试是否安装成功
mosquitto
修改配置
修改配置后需要重启服务才能生效
- 编辑配置信息
配置相关文件默认位置
/etc/mosquitto/,可看到目录下有些文件,这些文件用于存放通过命令添加的配置信息:先备份文件
cp -i aclfile.example ./aclfile、cp -i pwfile.example pwfile,再编辑配置文件vim/vi mosquitto.conf,进入后,键入/,此时左下角出现文本字样,键入关键字可进行内容查找(键入i编辑后可键入ESC重复上述步骤查找配置),wq!保存退出。配置如下:
# 是否允许匿名访问,即无需账号密码,此处设置为不允许
allow_anonymous false
# 修改默认端口1883,改为1884(查找时可搜索 “port 1883”)
port 1884
# 指定用户密码信息存放位置
password_file /etc/mosquitto/pwfile
# 指定配置用户及topic信息存放位置
acl_file /etc/mosquitto/aclfile
- 添加用户
启动服务后,使用命令添加用户/密码:
mosquitto_passwd -c /etc/mosquitto/pwfile 用户名,注意第二次创建用户时不用加-c,如果加了会把第一次创建的用户覆盖。查看
pwfile文件如下: - 添加用户和Topic访问关系
找到配置的文件
vim /etc/mosquitto/aclfile,追加用户与topic的绑定关系如下,wq!保存重启服务
# 指定用户
user chalice
# 指定topic,配置订阅权限
topic read report-booway-data-topic/#
# 指定topic,配置发布权限
topic write report-booway-command-topic/#
# 指定topic,配置订阅和发布权限
topic report-topic/#
如图:
相关命令
- 查看版本:
mosquitto -v - 启动服务:
service mosquitto start或systemctl start mosquitto.service - 停止服务:
service mosquitto stop - 重启服务:
service mosquitto restart,修改配置后需要重启服务才能生效 - 查看服务状态:
service mosquitto status - 查看服务开机时自启状态:
systemctl list-unit-files - 设置服务开机自启:
systemctl enable mosquitto - 禁止服务开机自启:
systemctl disable mosquitto - 开放默认使用端口(1883):
firewall-cmd --permanent --add-port=1883/tcp、刷新防火墙配置规则firewall-cmd --reload
可视化工具
MQTT.fx 下载
mqttfx-1.7.1-windows-x64.exe
MQTTX 下载
MQTTX.Setup.1.7.1.exe