Push-уведомление для приложения XMPP Chat для автономных пользователей в группе

Каждый....!!

Привет..!!

Я работаю над приложением чата на основе XMPP. Я использовал XMPPFramework Робби Хансона https://github.com/robbiehanson/XMPPFramework

я использовал OpenFire в качестве сервера XMPP

Я столкнулся с проблемой получения Push-уведомления для группового чата, когда пользователь не в сети.

В настоящее время я могу получать Push-уведомления для чата один на один, когда пользователь не в сети. (Для этого я создал PHP WebService, который извлекает информацию из таблицы Offline каждые 60 секунд)

Но так как нет сообщений Offline Tables для группового чата.

Может ли кто-нибудь предложить мне Как я могу получить push-уведомление для группы, когда пользователь не в сети в группе

Мне нужно управлять этим из приложения Android n iOS Chat

для Android я использую

https://github.com/siacs/Conversations

3 ответа

Посмотрите на https://github.com/diamondbybold/ejabberd_mod_offline_post

  1. Сначала настройте комнату как комнату только для членов и добавьте всех пользователей в качестве участников сразу после ее создания, чтобы можно было получить общее количество.
  2. Добавьте вышеуказанную модель в модели ejabberd.
  3. Реализуйте службу обратного вызова для обработки сообщения обратного вызова.

Идея заключается в том, когда пользователь выходит в автономном режиме

  • В случае "один на один" будет поднято offline_message_hook
  • В случае MUC будет вызвано muc_filter_message, а любой, который не доступен, находится в автономном режиме.

Попробуйте проверить этот MUC - Light и использовать модуль mod_zeropush, чтобы изменить бит для обработки одиночного и группового push-вывода с muc-light.

Это больше похоже на приложение Whats, хотя вы можете не достичь 100% результатов, как вы ожидаете, но менее сложным, чем традиционный XEP-0045.

Лучшим примером будет реализация AMP в Tigase. Он основан на плагине MessageAmp и компоненте AMP. Плагин MessageAmp перехватывает сообщения. Если он обнаруживает, что пользователь не вошел в систему, он пересылает сообщение компоненту AMP, чтобы сохранить его в автономном хранилище. В вашем случае у вас может быть свой собственный плагин Message, который, если он обнаружит, что пользователь не в сети, может переслать сообщение вашему компоненту Push (iOS push или Android push, SMS push или что-то еще). И вся логика, ответственная за фактическое push-уведомление на устройство, должна быть реализована в этом компоненте.

Другие вопросы по тегам