Почему я не могу получать сообщения от брокера mosquitto для определенного пользователя в файле ACL? - PullRequest
0 голосов
/ 17 марта 2019

Мне сложно понять, почему я могу подписаться на все темы с одним пользователем, но не с другим. Я настраивал их в разные моменты времени, может быть, я забыл шаг от первоначального пользователя.

Mosquitto broker 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. Я надеюсь, что кто-то еще может определить источник проблемы, спасибо.

1 Ответ

0 голосов
/ 17 марта 2019

При поиске в журнале изменений москита я понял, что какой-то пробел может быть виноват. Я снова проверил свой файл acl и нашел пробел, который был источником проблемы:

Для обидчика у меня после пробела # есть пробел, topic readwrite #

Теперь пользователь foo получает сообщения

...