2012-01-30 7 views
0

Мне нужны много MUC чатов с дополнительными функциональными возможностями: комнатаEjabberd: Дополнительные типам сообщений в MUC

  1. Изменить пользователь вручную из кода

  2. Ручки специальной «системы» вызовов (например, вызовы, такие как/changeroom должен быть не транспортируется к каждому, но handeled системы)

  3. магазин много дополнительных данные о пользователе в таблице Mnesia

  4. Сохраните всю историю где-нибудь в db на hdd и верните ее по запросу.

Единственное, что приходит на ум (о втором пункте), - это поймать каждое событие обработки пакета package_fillter. Но это кажется слишком тяжелым.

Что вы посоветуете?

ответ

0

Я подтверждаю, что ваш подход является излишним. Обработка всех пакетов кажется ненужной.

Вам необходимо написать собственное расширение модуля MUC, если для расширения MUC XMPP недостаточно для вас (XEP-0045).

С ejabberd 15.07 был введен новый API-интерфейс крюка под названием muc_filter_packet. Это позволяет вам легко написать модуль ejabberd для расширения только обработки пакетов MUC без прослушивания всех пакетов на сервере.