I was wondering how the actual request from Server get routed to the Application if the browser is not running. Also, does the service workers maintain an active connection to the server so that it receives the push notification whenever the server publishes something?
I think for every iOS device, Apple keeps a socket open between that device and the Apple Push Notification Service. Which essentially acts as a router for all notifications across all apps and all devices. So your server can send messages to APNS saying "yo, hit up this guy with this message", and APNS will use the socket it has open with every device to send the notification.
Also check out https://developer.apple.com/notifications/.
And https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server
Related
I have developed one Android app for the company which has Push Notification(GCM) as well.
When they send the notification and that time if the device is connected in their wifi network then notification doesn't come but if the device is connected to mobile network (3G/4G) then it receives the notification.
Their system admin might have blocked that web address but nobody knows exactly which address.
So, I just wanted to know which Google API gets called when notification arrives so that I can inform their System Administrator to unblock that web site/web address
Ask your admin to open port number 5228, 5229 & 5230. Hope this solves your problem
For your question, 'What Google API gets called when notification arrives"
To receive messages, use a service that extends GcmListenerService to handle message capture by GcmReceiver.
By overriding the method GcmListenerService.onMessageReceived, you can perform actions based on the received message.
My exact question is that
is an app listens from the notification
server in android.sevice?
Is this mean that every app has its own
notification server,my phone listens for
all of those servers?
No, there is single server (theoretically, it can be server infrastructure) hosted by your phone manufacturer (Google, Apple etc). If you as a developer wants to send push notification to your app user's phone, you sends it to this server and do not care how when or if it is delivered.
can someone to confirm that in order to use MQTT protocol, the APP on the smart device (Ios or Android) embedding MQTT client code, must be active? If so, how can i wake-up the App from my remote server to enable mqtt conversation? Maybe a push notification should alert the smartphone user to open the APP because some important messages are outstanding for him?
For Android the app can start a service that will run in the background and receive published messages all the time.
For IOS you will need to wake the application up to get it to connect to the broker, the usual approach to this is to use the Apple Push Notification Service to wake the app up.
The main thing is that the TCP socket (so the connection) between client and broker must be active so that broker can push messages to the client (as subscriber to some topics).
The only way to handle "disconnected" scenario from the client side is to connect to the broker with "clean session" at false. In this case, the broker will store all messages for that client if it's offline and then send them when it'll be online.
Paolo
I'm new on sending push notifications on android. I try to send push notification for my testing application periodically. But sometimes device can't receive the notification. I searched about it and i think the problem is because of connection lost between server and my device. I think the solution is sending an heartbeat network packet on the push connection but i don't know how can i do it and to which server i should do it?
There is an application on google play store called as Push Notifications Fixer and i think this work is what i want to do
I have a web socket that I need to receive information from in my android app. Would keeping a single web socket open at all times drain the battery on my android device? I expect that this web socket will only send notifications once every 24-hours, which is why I would like to close the connection, and somehow convert the web socket into a push notification. But, then I also need to be able to send from the android app to subscribe to the web socket and receive push notifications. How can I go about doing this?
I recommend using push notifications, which consume less battery of your phone and even more if you only send data once every 24 hours.
What technologies you plan to use?