Mosquitto 配置WebSocket连接

在 mosquitto.conf 配置文件中,加入如下内容: listener 18083 protocol websockets 这样,就可以开启 Websocket 服务。 如果要开启 wss,需要添加证书,可以使用 nginx 代理,在 nginx 上设置证书。nginx 配置如下: # mqtt location = /mqtt/ws { proxy_redirect off; proxy_pass http://localhost:8083; proxy_set_header Host $host:$server_port; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 300s; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

2025-11-04 · 1 min · Eagle

豆子碎片小程序使用MQTT接收文章审核消息

用户可以对接消息通知。集成 MQTT 后,就可以接收到 Visit 项目(豆子碎片小程序)文章审核消息。 上线消息 JSON 格式如下: // flag 1 在线 2 离线 { "icode":"你的icode", "flag":1 } 审核消息 JSON 格式如下: // 审核消息内容为标题+审核结果 { "icode":"你的icode", "content":"审核消息内容" } 从豆子碎片小程序获取 MQTT 账户及地址,就可以连接到 MQTT 代理服务器。 当你的 client 连接代理服务器成功后,你需要先发送一条上线通知,当你的 client 断开连接前,需要先发送一条下线通知。 当你上传文章审核后,后台会推送一条审核消息内容。你有可能收到其它用户的消息。请通过 icode 来区分消息是否是自己的?

2025-11-03 · 1 min · Eagle

配置数据库源,给 Mosquitto 配置 Go Auth 插件

Mosquitto Go Auth 是 Mosquitto MQTT 代理的身份验证和授权插件。之所以叫这个名字,是因为历史的原因,现在改名字太晚了,影响太大。 Mosquitto 是一个很流行的开源 MQTT 代理。go-auth 主要使用 Go 语言编写,它使用 cgo 来调用 mosquitto 的 auth-plugin 函数。 它支持并实现了以下后端: 文件 Postgresql 数据库 Mysql 数据库 Sqlite3 数据库 MongoDB 数据库 Redis JWT HTTP gRPC Javascript 解释器 定制后端 每个后端都提供用户、超级用户和 ACL 检查,并包括适当的测试。 我们先来构建它,构建它需要 cgo 环境,并且需要先构建 mosquitto。我们在 Linux 主机上安装 gcc,并安装 golang 环境,golang 版本要求 1.18 以上。 我们从https://github.com/eclipse/mosquitto下载源码文件。然后参考说明文档编译安装 mosquitto。我使用的 CentOS7,直接通过yum install mosquitto安装,安装的 mosquitto 版本为 1.6.10。所以我要下载 mosquitto1.6.10 的源代码。将代码中的 mosquitto.h,mosqutto_plugin.h 和 mosquitto_broker.h 文件复制到/usr/local/include 目录。 我们从https://github.com/iegomez/mosquitto-go-auth下载 go auth 的源码文件。我下载的当前版本为 2.1.0,解压缩并进入到源文件目录。输入命令make,将编译一个 pw 二进制文件和一个 go-auth.so 文件。我们将 go-auth.so 文件复制到/usr/local/lib目录,将 pw 二进制文件复制到/usr/local/bin目录。pw 可以用来生成密码,go-auth.so 是 mosquitto 调用的库。 ...

2025-11-02 · 2 min · Eagle

Mosquitto 配置认证

在 Mosquitto 实例上配置身份验证非常重要,这样未经授权的客户端就无法连接。 在 Mosquitto 2.0 及更高版本中,你必须明确选择身份验证选项,然后客户端才能连接。早期版本中,默认设置是允许客户端无需身份验证即可连接。 身份验证有三种选择:密码文件、身份验证插件和匿名访问。可以使用三个选项的组合。 在 Mosquitto2.0 及更高版本中,可以通过配置文件中将 per_listener_settings 设置为 true,让不同的侦听器使用不同的身份验证方法。 除了身份验证,您还应该考虑访问权限控制,以确定哪些客户端可以访问哪些主题。 密码文件设置 密码文件是一种将用户名和密码存储在单个文件中的简单机制。适合于有相对较少的静态用户。请注意,修改了密码文件后,需要重新加载 mosquitto。 创建密码文件,可以使用mosquitto_passwd工具,命令如下: mosquitto_passwd -c <password file> <username> 请注意,使用-c 标志将覆盖已存在的文件,如果向已存在文件添加,请去掉-c 标志。 要开始使用密码文件,需要配置 broker,在配置文件中,添加如下项: password_file <path to the configuration file> 密码文件必须能够被运行 mosquitto 的用户读取。 身份验证插件设置 如果你需要更多的控制来认证用户,你需要使用认证插件。具体的特性依赖于你使用的认证插件。 可使用的插件: mosquitto-go-auth ,它提供了各种后端来存储用户数据,例如 mysql,postgresql,jwt 或 redis 等。 Dynamic security,动态安全插件,仅适用于 2.0 及更高版本,可提供原创管理的灵活的代理客户端、组和角色。 配置身份验证插件依赖你的 Mosquitto 的版本。 版本 1.6.x 和以前的版本,使用auth_plugin选项。这个选项在版本 2.0 也被支持。 listener 1883 auth_plugin <path to plugin> 版本 2.0 及更高,使用plugin选项。 listener 1883 plugin <path to plugin> 匿名访问设置 配置匿名访问,请使用allow_anonymous选项。 ...

2025-11-01 · 1 min · Eagle