XMPP (Openfire) Push Notifications Android

Я действительно пытался найти решение этой проблемы, но не сделал этого. Есть некоторые темы, связанные с этой концепцией, но я не нашел исчерпывающего решения.

У меня есть сервер с Openfire, который отправляет сообщения. Когда оба пользователя находятся в сети, проблем нет. Однако, когда пользователь отключен, я хотел бы отправить push-уведомление, как в Whatsapp. Я слышал, что Whatsapp и другие приложения IM используют модифицированную версию ejabber для отправки push-уведомлений, но не смогли узнать, как это сделать.

Одна из возможностей - использовать GCM, но я не уверен, что это правильный путь. Также я хотел бы избежать опроса, чтобы не истощать срок службы батареи.

Кто-нибудь знает какое-то решение для этого или имеет пример?

Ответ 1

Ну, вы можете использовать GCM с XMPP. Новый GCM Cloud Connection Server позволяет использовать протокол XMPP для двунаправленной (Cloud to Device and Device to Cloud) связи между вашим сервером и вашим Android.

Сервер облачных соединений GCM (CCS) позволяет сторонним серверам взаимодействовать с устройствами Android, установив постоянный TCP соединение с серверами Google с использованием протокола XMPP. Эта связь является асинхронной и двунаправленной.

Ответ 2

Я изучаю openfire и нашел хорошие варианты, которые я хотел бы поделиться с вами. Я нашел плагин в github, и я проверю его на этой неделе. Кажется, это будет хорошим решением для вашей цели и для меня: https://github.com/meisterfuu/Openfire-GCM/

Другой вариант - использовать плагин CallbackOnOffline, который вызывает указанный URL с параметрами To и From. Этот URL-адрес может быть конечной точкой в ​​вашем веб-сервисе, и с этими данными (To и From) вы можете получить связанный Id для нажатия на свою базу и сделать нажатие.

https://www.igniterealtime.org/projects/openfire/plugins.jsp

Ответ 3

В openfire это делается автоматически, сообщения будут получены пользователем при входе в систему. Так что не беспокойтесь, отправляйте сообщение автономному пользователю, и когда пользователь приходит онлайн-сообщение, он автоматически будет нажат на пользователя.