XMPP (Openfire) Push-уведомления Android

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

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

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

кто-нибудь знает какое-то решение, или есть пример?

3 ответов


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

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


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

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

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


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