What will an ideal android app notification server architecture. I am developing an android in ionic. It has a mqtt server that serve chat purpose.
What i want is when my app receive a new message it should show the message as native notification.
What I am confuse is as I already have mqtt server that can do real time messaging, do I really need to use google GCM for sending & receiving notification or I can serve my purpose with my existing configuration.
In my existing app I directly calling mqqt server from my android app for chatting purpose, so can it be same for notification also i.e. send a push notification directly from app just as a chat message.
Can anyone brief me about a push notification architecture implementation ?
Conceptually this should all work fine with just MQTT, no need for GCM.
The problem may be your use of cordova/ionic. It's been a long time since I looked at MQTT support in cordova, but to do push notifications properly you will need to run the MQTT client in a Android Service so it will stay running in the background and have it create notifications in response to received messages.
If the cordova MQTT support will not allow background services you will need to write your own extension.
Related
I am working on an Ecommerce application which is deployed on the web using MERN and on mobile using Android SDK. The android application is using the REST Api made with node, express and mongo. The issue is I am unable to find a way to send push notifications to mobile devices from the node backend. I don't want to use third party push notification services such as pubnub or firebase FCM etc. On the web application I am using service worker on the client side for push notification which was easy to implement, but on the mobile side it is turning out to be a bit difficult and every where on forums and articles FCM, GCM or pubnub etc are being used.
Is there any way to avoid these services and make my own custom mobile push notification service using node REST Api I have made? If so how?
I am thinking one of the following technologies to use to build an Android Push Notification Server (not to use Google Cloud Messaging/GCM neither FCM):
Atmosphere Framework (http://async-io.org/)
Eclipse Mosquitto (https://mosquitto.org/)
The overall goal of this project is to allow Android application using the Custom Android Push Notification server be able to receive and display notification like this:
The first question would be: if an Android application does not utilize GCM or FCM would it be able to display notifications similar to those that use GCM or FCM?
Then if we use either the Atmosphere Framework or the Eclipse Mosquitto as a Push Notification Server would it be able to send push notification on an Android device without relying on GCM or FCM?
Also, I assume that if not using GCM or FCM then it is not possible for the registered Android device to receive a push notification from the custom APN server if the application that uses the custom APN is not running? This is correct, right? If so, then what would be the work-around? Make sure the Android application is running in the background?
I was implementing mobile game with my team. And we have argument that push system may not reliable enough. So we should find third party chat message service or open our own chat server instead of relying on silent push notification
But some still belief that using silent push to chat is the standard nowaday and more reliable than implement our own server
The requirement is just to send chat message to active user's chatbox while the app is open
Are there any concern to consider each method?
How about ios and android system setting?
Will our app receive surely recieve silent push if our app still open?
Are there any chat service that software industry used as standard
Try having a look at Firebase it has real time database and an FCM for your chat / push notification needs.
I am developing a Cordova app having a Java backend. I want to know if it's mandatory to use GCM service in order to show a push notification in Android/iOS (in notification tray)?
I am using Apache Kafka, MQTT brokers in my backend. Is it possible to show push notification using these solutions, i.e. using completely self defined solutions?
Using MQTT & other brokers I am able to send realtime data to users but how to show those message as native notification in notification bar is my problem.
Yes, you will need to use GCM to send push notifications to Android devices. You can even use GCM to send push notifications to iOS devices (GCM makes request to APNS (Apple push notification service) to make it work).
But GCM for iOS isnt trusted much.
You can use any backend to send push notification to your devices. You just need to make a request to GCM/APNS.
This is the cordova plugin for push notification.
Integrating with GCM is damn easy, but it takes a little effort with APNS.
Most people use third party paid services like Pushwoosh to implement their push backend because its convenient. There is a free alternative OneSignal but it tracks your usage.
Follow this guide to setup push for APNS. (You can just use the Setup certificate part from this guide, since you are not using C#)
To receive push you need use/implement GCM(and actually FCM, because of GCM deprecation)
To show notification from app it is unnecessary to implement GCM/FCM
I need to add the ability to send push notifications out to users who have our app installed (yet to go to market).
I guess I will need to install a phonegap plugin that will look for updates on our server (or could be triggered from our server) but I'm struggling to find a good approach.
I have seen this:
https://github.com/saileshmittal/phonegap-system-notification-plugin/tree/master/android-statusbar-notificaion
It allows phonegap to send a notification, but I don't know how I could send a remote message to the script to trigger a message.
C2DM is deprecated and GCM ( Google Cloud Messaging) is used to implement your push notifications for Android App.
In Android the technology of push notifications is called C2DM. Here is a tutorial for this.