使用mosquitto部署MQTT服务
本次实验使用版本:mosquitto-1.6.7
查看版本命令:mosquitto -v
1安装
make && make install
,安装mosquitto。
安装完毕后放开防火墙
-
查看防火墙某个端口是否开放
firewall-cmd --query-port=1883/tcp
-
开放防火墙端口80
firewall-cmd --zone=public --add-port=1883/tcp --permanent
-
配置立即生效
-
firewall-cmd --reload
2 模拟发布订阅
第一步 首先开一个终端,启动mosquitto服务(broker)
查看服务 ps -aux | grep mosquitto
启动MQTT服务 mosquitto -c /etc/mosquitto/mosquitto.conf -d
查看端口netstat -tunlp|grep 1883
第二步 开第二个终端(模拟订阅)
mosquitto_sub -p 1883 -v -t "test"
第三步 开第三个终端(模拟发布)
mosquitto_pub -p 1883 -t "test" -m "hello"
测试中出现的问题
1.报错./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
解决:执行以下命令: #sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1 #sudo ldconfig
2、在订阅和发布时如果没有指定端口号会报错
高级应用:
1 mosquitto设置用户名密码
把/etc/mosquitto下的pwfile.example和aclfile.example转成pwfile.conf、aclfile.conf
2 设置用户名和密码
mosquitto_passwd -c /etc/mosquitto/pwfile admin
输入密码admin123
3 vim /etc/mosquitto/aclfile
#admin只能发布以test为前缀的主题,订阅以开头的主题即系统主题
user admin topic write test/# topic read $SYS/#
4 设置日志文件输出路径
log_dest file /var/log/mosquitto.log
报错 修改权限
chmod 777 mosquitto.log
cd /var/log/mosquitto
chmod 777 mosquitto