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 я использую
3 ответа
Посмотрите на https://github.com/diamondbybold/ejabberd_mod_offline_post
- Сначала настройте комнату как комнату только для членов и добавьте всех пользователей в качестве участников сразу после ее создания, чтобы можно было получить общее количество.
- Добавьте вышеуказанную модель в модели ejabberd.
- Реализуйте службу обратного вызова для обработки сообщения обратного вызова.
Идея заключается в том, когда пользователь выходит в автономном режиме
- В случае "один на один" будет поднято 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-уведомление на устройство, должна быть реализована в этом компоненте.