The Ignite Realtime Community is pleased to announce the 1.0.0 release of the Push Server plugin for Openfire. This plugin is developed by the company Busoft Teknoloji A.Ş. It is inspired by Conversations Push Proxy and developed for Openfire.
Your instance of Openfire should automatically display the availability of the new plugin in the next few hours. Alternatively, you can download the the plugin directly from the Push Server plugin archive page.
What is this plugin for
Due to the restrictions in push services (FCM or APNS), only the developer can create push notifications for their apps. For this reason a user’s server wouldn’t be able to wake up a user’s device directly but has to proxy that wake up signal through the infrastructure of the app developer.
Push Server Plugin is an XEP-0357: Push Notifications app server that relays push messages between the user’s server and FCM (Firebase Cloud Messaging) or APNS (Apple Push Notification Service).
Here is a quick description of how this relationship is set up.
XMPP Client sends to the app server
- Device Token - Device Id
App Server generates
- Node Id - Secret
App Server stores
- Device Token - Device Id - Node - Secret
App Server returns to XMPP Client
- Node Id
XMPP Client sends to the user's server
- Node ID - The jid of the app server (push.example.com)
The user’s server sends to the app server
(Achived by Openfire Push Notification plugin)
When a push is required the user’s server will send the node id to the app server. The user’s server can also add additonal information like number of messages pending, the sender jid of the last message and even the body of the last message.
An example of that communication can be found in XEP-0357 Section 7.