eclipse-mosquitto 搭建与使用

1.使用docker Desktop下载 eclipse-mosquitto 镜像

屏幕截图 2023-06-23 232433.png

2.直接run,通过拿到container Id 拿到内部默认的配置文件

屏幕截图 2023-06-23 232732.png

屏幕截图 2023-06-23 232814.png
  • 执行docker cp containerId:/mosquitto/config/mosquitto.conf mosquitto.conf 拷贝出容器内部默认配置文件
  • 后续我们可以基于默认文件定制自己的mqtt服务器

3.根据eclipse-mosquitto配置文件调整配置

listener 1883
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/
allow_anonymous false
password_file /mosquitto/pwfile
acl_file /mosquitto/aclfile
  • 我们针对默认配置修改以上几个配置

4. 编写docker-compose

version: "3.7"
services:
  eclipse-mosquitto:
    image: eclipse-mosquitto
    ports:
      - 1883:1883
      - 9001:9001
    volumes:
      - ./mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log
      - ./mosquitto:/mosquitto

5.使用mosquitto_passwd生成加密后的密码

user2:$7$101$DM933TUCDUL0c5yd$6zXRZXqd/R6rlkW7Bgaeekwt1tFJt7vYWoGzUu3R/lew6fbFEzslCcDQwIbaCsCH9Bl8WlW51mwoVgCjCskz2Q==
user1:$7$101$CjvhuhWpQrQVX66z$+ylA0j1A0HbVyP1IxI6nepVpcc/0naf4WTxzEUG4/eLVVydT046/gDzUCAsFWaJ5gUENMcHBrsihQ1p0rOX93Q==
  • 执行mosquitto_passwd -c pwfile username这会要求输入密码,并经过计算生成一个加密串存入pwfile
  • 这里生成了两个测试用户user1user2,密码都是123456

6.编写aclfile作为权限控制

user user1
topic read test/#
topic read $SYS/#

user user2
topic write test/#
topic read $SYS/#

7.启动自己的eclipse-mosquitto服务

image.png
  • 最终目录结构
  • 执行docker-compose up即可启动

8.验证

image.png

image.png
  • 使用客户端连接到自己的eclipse-mosquitto服务,密码123456
  • user1订阅test/#,user2向test/1主题发送消息,user1可以收到,说明验证成功
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容