1.前言
Eclipse Mosquitto是一个开源(EPL/EDL许可)的消息代理,实现了MQTT协议的版本5.0、3.1.1和3.1。Mosquitto是轻量级的,适用于从低功耗单板计算机到完整服务器的所有设备。
MQTT协议提供了一种轻量级的消息传输方法,采用发布/订阅模型。这使得它非常适合用于物联网消息传递,例如低功耗传感器或手机、嵌入式计算机或微控制器等移动设备。
Mosquitto项目还提供了一个用于实现MQTT客户端的C库,以及非常流行的mosquitto_pub和mosquitto_sub命令行MQTT客户端。
Mosquitto是Eclipse Foundation的一部分,是iot.eclipse.org项目的一部分。该项目由Cedalo推动开发。
在GitHub上拥有8.3KStarts.项目的仓库地址为:mosquitto
2. docker 安装Eclipse Mosquitto
1、执行搜索指令找到官方镜像
docker search mosquitto
我们下载带有OFFICIAL标志的镜像
2、下载Image镜像
docker pull eclipse-mosquitto
3、配置映射目录
4、配置container容器到指定目录和映射端口
docker run -d--name my-mosquitto -p1883:1883 -p9001:9001 -v /d/docker/mosquitto/data:/mosquitto/data -v /d/docker/mosquitto/log:/mosquitto/log -v /d/docker/mosquitto/config:/mosquitto/config eclipse-mosquitto
创建配置文件,并且写入配置内容,保存完毕后重启。
listener 1883
listener 9001
protocol websockets
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
#Authentication
allow_anonymous true
password_file /mosquitto/config/pwfile
为了方便测试,我在这里开启了匿名访问allow_anonymous true。生产环境,应当改为False.
5、配置用户和密码
- 在config文件夹新增空文件pwfile.conf
- 查看容器
dockerps
- 进入容器,执行命令
docker exec -it b7c36ec27a62 sh
mosquitto_passwd -b /mosquitto/config/pwfile.conf root root
4. 查看生成密码文件内容
6、命令行测试
mosquitto_pub 和 mosquitto_sub 是 Mosquitto MQTT 代理的命令行客户端工具,用于发布(publish)和订阅(subscribe)MQTT 消息。
- mosquitto_pub:用于发布 MQTT 消息到指定的主题(topic)。
- mosquitto_sub:用于订阅 MQTT 主题,并接收对应主题下的消息。 这些工具通常用于测试 MQTT 代理的功能、与 MQTT 代理进行交互,或者在脚本中执行一些 MQTT 消息发布和订阅的操作。
它们的基本用法示例:
mosquitto_pub:
mosquitto_pub -h<hostname>-t<topic>-m"message"
其中:
- 是 MQTT 代理的主机名或 IP 地址。
- 是要发布消息到的 MQTT 主题。
- “message” 是要发布的消息内容。mosquitto_sub:
mosquitto_sub -h<hostname>-t<topic>
其中:
- 是 MQTT 代理的主机名或 IP 地址。
- 是要订阅的 MQTT 主题。 使用这些命令,可以轻松地在命令行界面上与 MQTT 代理进行通信,发布和订阅消息。
7、测试步骤:
- 进入容器,打开命令窗口,执行订阅命令
mosquitto_sub -h localhost -t topic
- 进入容器,开启新的命令窗口,执行发布命令
mosquitto_pub -h localhost -t topic -m"message"
- 展示执行结果
3. 配置客户端
- 下载mqtt.fx客户端进行连接测试。直达下载链接
- 配置连接
- 测试连接
连接成功,发布Key,值为value-2024
订阅Key,接收值为:
4.其他安装方法
- 应用程序安装
如果你觉得Docker安装Eclipse Mosquitto比较麻烦的话,也可以直接安装应用程序。官网详细介绍安装步骤:
How to Install the Mosquitto MQTT Broker on Windows? - IoTEDU
- Docker Compose安装
此文章有详细的安装教学:Setting up the Mosquitto MQTT Broker using Docker Compose - Pi My Life Up
docker-compose 代码如下:
services:
mosquitto:
image: eclipse-mosquitto
container_name: mosquitto
volumes:
- ./config:/mosquitto/config
- ./data:/mosquitto/data
- ./log:/mosquitto/log
ports:
- 1883:1883
- 9001:9001
stdin_open: true
tty: true
其他配置步骤类似。
5. 总结
环境安装只是开发的第一步,后续我们将在此基础上进行MQTT的开发。
6. 参考文档
- mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)-CSDN博客
- docker安装eclipse-mosquitto记录(实践可用)-CSDN博客
版权归原作者 dotnet研习社 所有, 如有侵权,请联系我们删除。