我很难弄清楚为什么我可以与一个用户一起订阅所有主题,而不能与另一个用户一起订阅。我在不同的时间点设置它们,也许我忘记了原始用户的操作。
Mosquitto经纪人v1.5.5
acl_file包含
user foo
topic readwrite #
user bar
topic readwrite #
当我与用户 foo 建立联系并订阅'#'
时,我会从发布测试中获取所有消息。
当我与用户 bar 建立联系并订阅'#'
时,发布测试没有任何消息。
当我尝试为用户 bar 使用错误的用户名/密码连接时,出现了预期的错误。 Mosquitto的日志清楚地显示了酒吧成功连接。
连接了用户 foo 并发布了一条消息后,蚊帐日志中依次显示:Received PUBLISH
,然后依次显示Sending PUBACK
和Sending PUBLISH
连接了用户 bar 并发布了一条消息时,蚊帐日志中依次显示Received PUBLISH
和Sending PUBACK
,但不显示Sending PUBLISH
当我将ACL文件中的条目反转为
时,user bar
topic readwrite #
user foo
topic readwrite #
两个用户均未收到Sending PUBLISH
消息。我希望其他人可以找到问题的根源,谢谢。
答案 0 :(得分:0)
在搜索蚊子变更日志时,我想到了一些空白可能是原因。我再次检查了acl文件,发现一个空格是问题的根源:
对于冒犯的用户,我在#
通配符topic readwrite #
后面有一个空格
现在用户 foo 正在接收消息