从网络上查询安装和配置MQTT 的教材很多,感谢前辈的帮助,总是感觉太麻烦了,有没有比较简单和快速的方法呢,通过本人实践,找到用yum安装的方法,同时支持websocket,必须是开发包也要安装,如下所示。
1. 安装mosquitto软件和相应的开发文件
1.1 一定要下载相关的安装包,点选择yes,如下图所示
yum install mosquitto mosquitto-devel
1.2 /etc/mosquitto/mosquitto.config打下添加如下配置在配置档中,211行下面,支持websocket,可此为可选操作
port 1883
listener 9001
protocol websockets
2. 开启mosquitto服务,
service mosquitto start
如果提示如下图所示,请用如下命令再执行
云服务器 ECS Linux CentOS 7 下重启服务不再通过 service 操作,而是通过 systemctl 操作。
查看:systemctl status sshd.service
启动:systemctl start sshd.service
重启:systemctl restart sshd.service
自启:systemctl enable sshd.service
systemctl start mosquitto.service
开始和停止服务,测试端口相关的命令,如果启动不成功或是端口测试不成功,则重启系统或查看LOG,解决问题
systemctl stop mosquitto.service
systemctl start mosquitto.service
telnet 127.0.0.1 1883
telnet 127.0.0.1 9001
3. 测试,如下图所示
-
# 当前终端运行订阅测试
-
mosquitto_sub -t test1
-
# 另起一个终端运行发布测试,输入下面命令在订阅终端窗口可以看到Hello
-
mosquitto_pub -t test1 -m Hello
4. 配置
关掉mosquitto服务
service mosquitto stop
关闭匿名登录,客户端登录需要用用户名,为了数据安全,这步也是必须要做的
-
# 到mosquitoo配置目录
-
cd /etc/mosquitto
-
# 修改配置
-
vim ./mosquitto.conf
-
# 输入 '/' 表示搜索,输入 allow_anonymous 查找到配置项,修改为false
-
allow_anonymous false
具体配置如下
5. 创建用户root
命令行输入
-
mosquitto_passwd -c /etc/mosquitto/pwfile.txt root
-
# 接下来连续输入两次密码即可
6. 重新启动
service mosquitto start
7. 最终测试,可以看到Welcome即成功
-
# 当前终端运行订阅测试
-
mosquitto_sub -t test -u root -P 密码
-
# 另起一个终端运行发布测试
-
mosquitto_pub -u root -P 密码 -t test -m Welcome
远程测试过程如下
在服务器上推送几条信息为测试资料
mqtt.fx client 测试一个topics name:fountain
附件: 网络上可参考的文章
MQTT安装使用 - 简书
MQTT 详解 - 简书
搭建MQTT服务器 - lulipro - 博客园
mqtt服务器mosquitto在CentOS 7上安装