使用mosquitto部署MQTT服务

521 阅读1分钟

本次实验使用版本: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