为什么我无法从 ACL 文件中的特定用户接收来自 mosquitto 代理的消息?

Why can't I receive messages from mosquitto broker for a particular user in the ACL file?

我无法弄清楚为什么我可以通过一个用户订阅所有主题,但不能通过另一个用户订阅所有主题。我在不同的时间点设置它们,也许我忘记了原始用户的步骤。

Mosquitto 代理 v1.5.5

acl_file 包含

user foo
topic readwrite #

user bar
topic readwrite #

当我连接到用户 foo 并订阅 '#' 时,我收到了来自发布测试的所有消息。

当我连接到用户 bar 并订阅 '#' 时,我的发布测试没有收到任何消息。

当我尝试为用户 bar 连接一个错误的 username/password 时,我得到了预期的错误。 Mosquitto 的日志清楚地显示 bar 连接成功。

当用户 foo 连接并发布消息时,mosquitto 日志显示 Received PUBLISH 然后 Sending PUBACK 然后 Sending PUBLISH

当用户 bar 连接并发布消息时,mosquitto 日志显示 Received PUBLISH 然后 Sending PUBACK 并且不显示 Sending PUBLISH

当我将 acl 文件中的条目反转为时,

user bar
topic readwrite #

user foo
topic readwrite #

两个用户都没有收到 Sending PUBLISH 消息。我希望其他人能找出问题的根源,谢谢。

在搜索 mosquitto 更新日志时,我想到某些白人space 可能是罪魁祸首。我再次检查了我的 acl 文件,发现 space 是问题的根源:

对于有问题的用户,我在 # 通配符之后有一个 space,topic readwrite #

现在用户 foo 正在接收消息