场景
CentOS上使用rpm离线安装Mosquitto(Linux上Mqtt协议调试工具)附资源下载:
CentOS上使用rpm离线安装Mosquitto(Linux上Mqtt协议调试工具)附资源下载-CSDN博客
上面介绍了mosquitto的离线安装。
如果业务场景中需要订阅某mqtt主题的消息并将收到消息的时间以及消息内容记录到
文件中,便于数据分析。
如果是在windows电脑上可以参考如下
Winform中使用MQTTnet实现MQTT的服务端和客户端之间的通信以及将订阅的消息保存到文件:
Winform中使用MQTTnet实现MQTT的服务端和客户端之间的通信以及将订阅的消息保存到文件_mqttnet publishasync-CSDN博客
如果是在linux上可以使用mosquitto加脚本的方式实现。
注:
博客:
霸道流氓气质-CSDN博客
实现
CentOS上Mosquitto服务的启动、停止、查看状态
上面搭建mosquitto的服务后,需要启动其服务
启动服务器
sudo service mosquitto start
查看状态
sudo service mosquitto status
关闭服务器
sudo service mosquitto stop
Mosquitto实现发布MQTT主题消息、订阅mqtt主题消息的命令
服务启动成功后进行发布mqtt主题消息和订阅测试,用于本地调试测试用
mosquitto源码地址:
GitHub - eclipse/mosquitto: Eclipse Mosquitto - An open source MQTT broker
文档中明确指出发布和订阅主题的指令
发布:
mosquitto_pub -t 'test/topic' -m 'hello world'
订阅:
mosquitto_sub -t 'test/topic' -v
更多订阅指令说明,参照:
mosquitto_sub man page | Eclipse Mosquitto
下面在同一台服务器进行测试
发布mqtt主题与消息
mosquitto_pub -h localhost -t "test" -u badao -P badao -m "hello"
订阅主题与接受消息
mosquitto_sub -h localhost -t "test" -u badao -P badao
测试结果
Linux中实现记录MQTT主题消息内容和当前时间到文件中的指令
执行如下指令
mosquitto_sub -h localhost -t "test" -u badao -P badao | while read payload; do echo "$(date): $payload" >> mqtt_data.log; done
然后再次发布主题消息,在上面指令执行的目录下查看mqtt_data.log文件内容即可