I am going to talk about both push notification platforms we used just briefly.
To begin with,
we used React Native on the client-side. And here the story begins.
FCM
Firebase Cloud Messaging is a free cloud service provided by Firebase (Google). It is widely
used by both web and mobile developers to implement notifications into different platforms (Web, Android, iOS).
An interesting FCM feature is
Topic messaging. It allows sending push messages to multiple devices that have opted-in to a particular topic.
It's quite easy here to set receiving notifications on the client-side and sending them from the server-side.
In the case of sending push messages to the topic, there is no need to store device tokens.OneSignal
OneSignal is one more service for
mobile (Android, iOS) and web push notifications, email, SMS & in-app messaging.
The most interesting features among others are:
1) sending push messages to target large groups of devices directly by data filters
2) personalizing notifications with Tags
'Tags' is something interesting to talk about. But a bit later.
TL;DR
If you need
100% push message delivery in every app state then skip the silent notifications and try alert notifications (also known as
notification-only in FCM).
To notify client about some event in background mode (and if long pool/websocket doesn't suit your purpose),
you can try silent notifications. But! When your app ends up in a killed state such a
push message doesn't pop up (at least within React Native).