Ejabberd Пакетная фильтрация - PullRequest
0 голосов
/ 16 мая 2011

Я пытаюсь создать приложение онлайн-чата на основе ejabberd, я использую extauth, и до сих пор все работало нормально.Теперь я сталкиваюсь с проблемой при отправке сообщения от пользователя A, который не входит в реестр B (какой-то модератор или что-то в этом роде), но ejabberd блокирует сообщение, поскольку оба пользователя не подключены, я изучил функцию общего реестра Ejabberdно он не работает с Extauth, я также пытался отфильтровать пакет (если пакет от модератора, а не просто переслать, иначе он выполняет обычную обработку), но он не был успешным (не знаю, как переслать пакет и остановитьвыполнение крюков).

Пожалуйста, помогите мне, как я могу достичь этой функциональности.

Спасибо

Ответы [ 2 ]

1 голос
/ 18 мая 2011

почему бы не подписать пользователей друг на друга (отправив подписку-подписку) - это может быть только временно. Подписывая пользователей, вы создадите записи в ростерной таблице, которые позволят доставку пакетов. Кроме того, в зависимости от архитектуры вашего чата, возможно, стоит попробовать mod_muc?

хорошая ссылка на все потоки данных: http://xmpp.org/

0 голосов
/ 05 апреля 2015

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

  • Добавить хук для 'filter_packet' с большим приоритетом
  • В том, что ваши проверки
  • перешлите это, вызвав 'run' на другом хуке, который вы ищете
  • отбросить пакет в этот момент (так как другой хук, на котором вызывается 'run', позаботится)
...