2015-09-24 2 views
1

У меня есть приложение iOS, поддерживаемое ejabberd, с небольшим расширением, основанным на offline_message_hook, который использует APNS (Apple Push Notification Service) для доставки push-уведомлений о сообщениях, отправляемых автономным пользователям. Это не так хорошо работает для групповых чатов, поэтому я ищу стратегию, которая будет делать то же самое для автономных пользователей, которые являются частью группового чата. У MUC даже отслеживаются пользователи, входящие в комнату, но не в сети? Должен ли я каким-то образом расширить их, чтобы отслеживать это? Могу ли я вычесть набор приглашенных пользователей из набора онлайн-пользователей, чтобы получить офлайн-пользователей? Какой крюк я должен использовать для этого?автономное сообщение hook для групповых чатов

Любые предложения по этому поводу или рекомендации по лучшей стратегии очень ценятся!

ответ

1

Спецификация XMPP для многопользовательского чата определяет номера MUC как основанные на присутствии. По определению пользователь находится только в чате, когда он подключен. Когда он выходит в автономный режим, пользователи выходят из чата. Это означает, что он вообще не получает сообщения. Это объясняет, почему они не хранятся в автономном режиме.

Это особенность XEP-0045. Некоторые будущие спецификации XMPP (ака MUC 2) могут решить эту проблему в будущем. В настоящее время MUC + автономное хранение сообщений невозможно в XMPP.

+0

Спасибо. когда вы планируете выпустить MUC 2? можете ли вы дать мне некоторые рекомендации относительно того, как это сделать в MUC 1. –

+0

Это невозможно в том, как это определено в спецификации MUC. Вы должны изобрести свой собственный протокол/расширение в соответствии с вашими требованиями. Например, вы можете использовать новые крючки, добавленные в модуле MUC ejabberd (muc_filter_packet). Что касается MUC2, XSF еще не написали спецификации MUC 2, поэтому на несколько месяцев. –

Смежные вопросы