1. 添加 EPEL 软件库(如已安装,请跳过此步骤)
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
遇到选择项输入y即可。
2. 查看EPEL安装结果
yum repolist all | grep enabled
3. 安装 Mosquitto
查找 mosquitto 软件包:yum list all | grep mosquitto
查看 mosquitto 信息: yum info mosquitto
安装 mosquitto 软件包: yum install mosquitto
查看安装结果:yum list installed | grep mosquitto
4. 测试Mosquitto
启动 mosquitto 主程序:mosquitto
新建一个ssh窗口;订阅》执行命令:mosquitto_sub -t test
新建一个ssh窗口;发布》执行命令:mosquitto_pub -t test -h localhost -m "hello, world"
可以看到订阅窗口收到:hello, world
5.开机自启Mosquitto
查找 mosquitto 服务:find / -iname mosquitto* | grep service
设置 mosquitto 服务:systemctl enable mosquitto.service
启动 mosquitto 服务:systemctl start mosquitto.service
查看 mosquitto 状态:systemctl status mosquitto.service
查看进程:ps -aux | grep mosquitto
重启 CentOS:reboot,查看 mosquitto 服务是否自动启动:systemctl list-units | grep mosquitto
mosquitto_pub 命令参数说明
- -d 打印debug信息
- -f 将指定文件的内容作为发送消息的内容
- -h 指定要连接的域名 默认为localhost
- -i 指定要给哪个clientId的用户发送消息
- -I 指定给哪个clientId前缀的用户发送消息
- -m 消息内容
- -n 发送一个空(null)消息
- -p 连接端口号
- -q 指定QoS的值(0,1,2)
- -t 指定topic
- -u 指定broker访问用户
- -P 指定broker访问密码
- -V 指定MQTT协议版本
- –will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与–will-topic一起使用
- –will-qos Will的QoS值。该参数需要与–will-topic一起使用
- –will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与–will-topic一起使用
- –will-topic 用户发送Will消息的topic
mosquitto_sub 命令参数说明
- -c 设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息。
- -d 打印debug信息
- -h 指定要连接的域名 默认为localhost
- -i 指定clientId
- -I 指定clientId前缀
- -k keepalive 每隔一段时间,发PING消息通知broker,仍处于连接状态。 默认为60秒。
- -q 指定希望接收到QoS为什么的消息 默认QoS为0
- -R 不显示陈旧的消息
- -t 订阅topic
- -v 打印消息
- –will-payload 指定一个消息,该消息当客户端与broker意外断开连接时发出。该参数需要与–will-topic一起使用
- –will-qos Will的QoS值。该参数需要与–will-topic一起使用
- –will-retain 指定Will消息被当做一个retain消息(即消息被广播后,该消息被保留起来)。该参数需要与–will-topic一起使用
- –will-topic 用户发送Will消息的topic