Project: AeroGear WebPush and UnifiedPush Server integration
Organization: JBoss Community
Mentor: Matthias Wessendorf
Student: Idel Pivnitskiy
University: National Research University Higher School of Economics
The AeroGear UnifiedPush Server is a powerful and scalable server that allows sending push notifications to different (mobile) platforms. And now it’s time to extend it and add supporting for a new WebPush protocol, which will allow to send push notifications to the web browsers, such as Google Chrome and Mozilla Firefox.
The project also supposes integration of AeroGear WebPush Server with UPS, which will allow to send push notifications to any device without requirement to use vendor’s pushmessaging systems (Google Cloud Messaging, Mozilla Push Service).
- Add WebPush support for Google Chrome and Mozilla Firefox browsers into UPS.
- Integrate AeroGear WebPush server with UnifiedPush Server.
- Good test coverage for the new code (unit and integration tests).
- Documentation for all of new developments and changes.
- Demo applications for showing the work of WebPush protocol in action with UPS:
- pure WebPush demo: AeroGear UPS to WebPush Server, which delivers push notifications to the device;
- GCM/MPS push, triggered by UPS. On browser push message is received via Push API.
-
Participation in WebPush protocol development process with WebPush Working Group:
- discussions in mailing list: https://www.ietf.org/mail-archive/web/webpush/current/threads.html
- openned issues: #110, #111, #112, #113, #115
- merged pull requests: #118, #122
Result: I was added to the Acknowledgements section of WebPush protocol: https://github.com/webpush-wg/webpush-protocol/commit/319d3f6ee5e5741f22a2ed600b137c507e6b0b04
-
Small improvements for AeroGear UnifiedPush Server (UPS): commit#1, commit#2.
-
Prepared a demo web page, which works with Chrome Push API and receives push notifications from UPS: PR#13.
-
Prepared a video which demonstrates how UPS deliveres push notification to the Google Chrome: link on YouTube.
-
Added Firefox Variant for UPS to support Push API in Mozilla Firefox: PR#744.
-
Adapted Chrome Push API example for Mozilla Firefox too PR#14.
-
Added Webpush Variant for UPS to support Push API in Mozilla Firefox and Google Chrome simulteniously: PR#745.
-
Adapted Chrome Push API demo web page for Firefox and WebPush variant: PR#15.
-
Adapted Chrome Push API demo web page for Firefox and WebPush variant with encrypted payload: PR#16.
-
Made some refactoring and code improvements for UPS: PR#749.
-
Integrated UPS with AeroGear WebPush Server: PR#750.
-
Answered to the users' questions on StackOverflow, related to the WebPush protocol and Push API: 1, 2, 3, 4.
- Demo application which shows how AeroGear UnifiedPush Server works with AeroGear WebPush Server and deliveres push notifications to IoT devices.
- More tests for UPS WebPush variant.
- Develop a java client for an application server (similar as a current client for a user agent). See WebPush protocol: 1.1. Conventions and Terminology.
- Rewrite java clients for a user agent and an application server with native Java 9 HTTP/2 Client API.
- Port webpush-codec directly to Netty project. It will simplify AeroGear WebPush Server's code base and attract other developers to improve the core of the WebPush protocol.