mosquitto是用户广泛应用的MQTT协议实现,mosquitto用C/C++编写,采用单线程架构,支持mqtt消息的订阅与发布,可以用于物联网设备之间通信。
1,安装:sudo apt install mosquitto -y,执行后在/etc目录下就有了mosquitto的文件夹。
2,安装客户端:sudo apt install mosquitto-clients -y
3,添加配置文件:/etc/mosquitto/conf.d/config.conf
在文件config.conf中,
设置监听端口 listener 1883
禁止匿名访问 allow_anonymous false
设置密码保存路径 password_file /etc/mosquitto/pwfile.txt
4,创建用户和密码文件
使用mosquitto_passwd工具创建密码文件,首次创建密码文件时使用-c选项,之后添加用户时不要使用。sudo mosquitto_passwd -c /etc/mosquitto/passwd
sudo mosquitto_passwd /etc/mosquitto/pwfile.txt 用户名
密码
确认密码
5,启动服务 sudo service mosquitto start 或者使用systemctl命令启动Mosquitto服务 sudo systemctl start mosquitto
6,查看服务状态 sudo service mosquitto status 或 sudo systemctl status mosquitto
7,测试mqtt服务
非匿名方式:-u指出用户名,-P表示用户密码,-t表示订阅主题,-m表示发布的消息
订阅主题:mosquitto_sub -u admin -P admin -t "text"
发布信息 mosquitto_pub -u admin -P admin -t "text" -m "hello"
匿名方式:-h localhost:这个选项指定了 MQTT 代理(broker)的主机名或IP地址。在这里,它被设置为 localhost,意味着 MQTT 代理运行在本地机器上。如果你的 MQTT 代理运行在不同的机器上,或者你需要通过不同的端口连接到它,你可以通过 -h : 的形式来指定。不过,如果 MQTT 代理运行在标准端口(通常是 1883),并且你不需要特别指定端口,那么只需提供主机名或IP地址即可。
订阅主题:mosquitto_sub -h localhost -t "demo"
发布信息:mosquitto_pub -h localhost -t "demo" -m "hello"