在MQTT Broker中添加用户

Nau*_*kir 4 mqtt mosquitto

我有一个在Ubuntu 16.04中运行的MQTT代理。我的问题是,在代理运行时如何添加用户?当我使用添加用户时

mosquitto_passwd -c /etc/mosquito/pwfile user2
Run Code Online (Sandbox Code Playgroud)

该用户确实显示在pwfile中,但是直到重新启动代理后,我才能从外部源访问该用户。我尝试使用

sudo mosquitto -c /etc/mosquitto/mosquitto.conf
Run Code Online (Sandbox Code Playgroud)

重新加载mosquitto.conf文件,但出现此错误

1483102542: Config loaded from /etc/mosquitto/mosquitto.conf.
1483102542: Opening ipv4 listen socket on port 1883.
1483102542: Error: Address already in use
Run Code Online (Sandbox Code Playgroud)

因此,我该怎么做才能将用户添加到代理中并在不重新启动代理的情况下加载它们呢?访问)

har*_*llb 6

有2个选项。

  1. Mosquitto在启动时会读取密码文件,因此在您运行时不会获取更改mosquitto_passwd。您可以通过向mosquitto代理发送HUP信号来强制mosquitto重新读取文件。
  2. 更好的选择是,如果要动态添加/删除用户,请停止使用密码文件,并使用mosquitto-auth-plugin,它使您可以使用数据库存储用户名/密码和ACL条目。

  • 支持@Trevor 通配符,只是不支持 Redis 后端 (2认同)