У меня есть настройка ejabberd с несколькими общими списками («группами»). Мне нужно иметь возможность отправлять сообщения всей группе. Я смог сделать это с помощью встроенного мода анонса, отправив сообщение на jabber.myserver.com/announce/online. Это отлично работает, но действует как серверная трансляция и не показывает, от какого пользователя пришло сообщение.
Я полагаю, что я не единственный, кому нужно отправлять групповые сообщения на ejabberd, но я был удивлен отсутствием документации и решений, которые я нашел по этому поводу.
Что было бы хорошим способом добиться этого?
Может быть, на этот вопрос лучше ответить при программировании?
Я бы посмотрел на исходный код модуля mod_announce и посмотрел, можете ли вы добавить дополнительные перехватчики URL-адресов для выполнения чего-то вроде следующего для групповых сообщений:
example.com/announce/group/groupname
Я не знаю, поможет ли это показать, кто отправил сообщение, поскольку я не знаю, какая информация доступна модулю во время выполнения. Было бы разумно сделать исходный запрос доступным для модуля, но я сам не смотрел.
Кроме того, это именно то, для чего был разработан MUC; создать конференцию и пригласить только тех пользователей, которым вы хотите видеть сообщения, отправленные в эту конференцию. Вы можете заблокировать его с помощью расширяемых свойств, предоставляемых XMPP, чтобы он оставался доступным только по приглашениям и модерировался; при использовании его для системы объявлений это может быть желательно.