Отправить сообщение только одному пользователю, подписанному на одну тему брокера mqtt

#java #mqtt

#java #mqtt

Вопрос:

Прошу прощения, если вопрос может показаться глупым.

У меня есть брокер mqtt, в котором у меня есть, например, тема «ChatBox / Chat_1», в этой теме подписано много пользователей, но если мастер, который подписан так, что «ChatBox» хотел отправить сообщение одному пользователю в Chat_1, чтобы остальные его не получили, есть способ или нет?

Комментарии:

1. добавьте больше деталей!!

2. @hardilib абсолютно прав в том, что то, о чем вы просили, невозможно, но не предложил никакого намека на возможный способ попытаться решить вашу проблему. Дело не в том, что существует метод прерывания протокола, позволяющий ведущему отправлять сообщения отдельным клиентам, это больше похоже на шаблон или подход к организации клиентских тем: чтобы получить возможность отправлять сообщения отдельным клиентам, вам нужно будет предоставить каждому клиенту свою личную тему (а также общую тему), а затем ведущий может отправлять им сообщения по этой теме.

3. Спасибо, я рад, что на этой платформе тоже есть кто-то, вместо того, чтобы сразу ставить -1, вы понимаете, что не все являются опытными программистами, но кто-то также может задавать вопросы, которые могут показаться глупыми, учитывая, что у него есть подход к теме для самостоятельного изучения. Через некоторое время я понял, что единственным методом был тот, который вы мне предложили, и я использовал регистрационную форму для получения пользовательских данных и использования их имени пользователя как для клиента, так и для личной темы.

Ответ №1:

Сообщения MQTT публикуются в разделах, а не отдельным клиентам / пользователям. Все клиенты, подписанные на тему, получат все сообщения, опубликованные в этой теме.

Невозможно отправить сообщение конкретному клиенту без написания полностью настраиваемого брокера MQTT (что в таком случае нарушало бы спецификацию)