Как интегрировать FCM с Ejabberd? - PullRequest
4 голосов
/ 02 апреля 2019

Среда:

Ejabberd Версия: 16.04

Smack-android-4.1.0

Я создалПриложение для чата Android с сервером XMPP.Однако из-за проблемы с разрешением в Google Play мне пришлось сузить функцию из приложения, которое поддерживало получение уведомлений о входящих сообщениях, когда приложение находится в фоновом режиме.

В качестве альтернативы я получил следующее предложение от группы проверки GooglePlay.

После того, как вы удалили это разрешение, вы можете рассмотреть возможность использования Firebase Cloud Messaging (FCM), если для доставки сообщений вашего приложения требуется временное освобождение от оптимизации батареи.Устанавливайте высокий приоритет только в том случае, если сообщение является критичным ко времени и требует немедленного взаимодействия с пользователем, и имейте в виду, что установка высокого уровня приоритета для ваших сообщений способствует большей разрядке батареи по сравнению с обычными приоритетными сообщениями

момент, когда пользователи могут отправлять сообщения через приложение.Но когда он закроет приложение, он будет считаться автономным пользователем и не будет получать никаких уведомлений от приложения.Когда он снова откроет приложение, он получит все автономные сообщения, которые были сохранены на сервере Ejabberd.

Я хочу улучшить текущее приложение, чтобы, даже если пользователь закрыл приложение, он все равно получал уведомлениекогда кто-то отправляет ему сообщение (аналогично WhatsApp)

  1. Есть ли в ejabberd модуль, который интегрирует сервер с FCM и обрабатывает это?

  2. Если мы не сможем добиться этого с помощью Ejabberd, существует ли сторонняя библиотека для поддержки этого?

  3. Если нет, мы должны написать модуль Erlang с нуля?

Я нашел похожие вопросы в интернете, но не смог найти никакого работающего решения.Так как я не очень опытен в Erlang и был бы рад услышать ваши решения / идеи по этому вопросу.Заранее спасибо.

1 Ответ

3 голосов
/ 04 апреля 2019

Этого можно добиться в Ejabberd с помощью offline_message_hook.Эта ловушка запускается при отправке сообщения получателю и получателю в автономном режиме.Поэтому создайте пользовательский модуль с помощью этой ловушки, и вы можете отправить push-уведомление на серверы FCM и APN.Ссылайтесь на этот блог - https://jasonrowe.com/2011/12/30/ejabberd-offline-messages/

...