I want to use the push notification feature of Worklight, but worry about the reliability. According to the "Quality of Service" section in Apple Push Notification Service, APNS doesn't guarantee the arrival of the message. I heard that IBM provides a MMQT mechanism for this situation, but did't find any reference from Worklight's Guides.
I also noticed that Apple doesn't allow network operations when the APP is running in the background state. So is that possible to maintain its own persistent connection and receive messages by an APP? Is there any solution to implement a reliable push notification on iOS?
Using MQ Telemetry Transport Protocol in IBM Worklight Mobile Applications
Not sure I understand this one... When a Worklight application is in the background and you send a push notification the device (the OS...) will detect this and if you tap on the notification the app will then come to the foreground. If this doesn't answer your question, edit your question in greater detail.
Related
I was wondering if its possible, using PubNub to route a message as a push notification, even if the app is running in the foreground?
One way that I can think to do this is to:
Handle any specific routing and events that need to happen first.
Check the push note portion of the message and send a local device notification. Alternatively any custom UI, etc could be done here.
PubNub does send the push notification when the app is in the foreground. In fact, PubNub (the mobile push notification server) does not know if the device is foreground, background or not running at all. So the push notification is always sent to the device either way.
See the following PubNub Developer Community article, Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call, for more details.
Also refer to the PubNub iOS Mobile Push Gateway Tutorial for Realtime Apps. These docs are about to get a major upgrade in terms of completeness.
I know this question can sound a bit strange, but I want to ask this anyway (feel free to downvote): is it possible to send push notifications to an iOS device without connecting to an Apple server? My idea is to send a push from my private server, not Apple's. Is this possible?
Info from developer.apple.com
Remote notifications—also known as push notifications—arrive from
outside a device or a Mac. They originate on a remote server—the app’s
provider—and are pushed to apps on devices (via the Apple Push
Notification service) when there are messages to see or data to
download.
There is no way to do it without using Apple Push Notification System (apns).
Well, the general answer would be - no.
It is not possible due to Apple's restrictions.
There may be different providers to an APN, but as the documentation suggests, there has to be a direct connection to an APN.
For more informations, please check out Apple's Documentation on Apple Push Notification Service.
However, I found this post where a user suggests using a service called Urban Airship - I have not tried this myself, so I don't know if and how it would work, but you may check it out :)
we're doing chat application for mobile phones using push technology.
The idea is that messages are sent in pushes, so that we keep battery life, avoiding background loop with constant requests to server.
Currently the main problem is iOS message limitation of payload to 256.
Has anyone encounter this problem? What would be the best way to solve it?
Building a chat application using push notification is not a good idea, because push notification is not intended to deliver data, so payload is not your main issue, since there is no guarantee of delivery of push notifications according to apple:
Delivery of notifications is a “best effort”, not guaranteed. It is
not intended to deliver data to your app, only to notify the user that
there is new data available.
Thus you need to use something else until iOS7 is released, because iOS 7 has new background fetching modes, unfortunately I can explain more due to the NDA, so you can log to apple's forum and read about that.
Until that you cant start with Socket based iphone app awesome tutorial by Cesare Rocchi.
What you should do is to instead send an identifier to distinguish the data in the push message, and then have the application download it once the message is opened.
How do iOS "push" notifications get delivered to a particular device without that device needing to poll a server?
For example, let's say I have received a new message on Facebook. Facebook notifies Apple that my device should receive a notification as such. But how does Apple know which device/IP to push the message to?
Each device can be updated with data using their own unique device tokens. This picture explains everything . .
It was too much for me to put in a comment so.
From the documentation.
Apple Push Notification service (APNs) propagates push notifications to devices having applications registered to receive those notifications. Each device establishes an accredited and encrypted IP connection with the service and receives notifications over this persistent connection. Providers connect with APNs through a persistent and secure channel while monitoring incoming data intended for their client applications. When new data for an application arrives, the provider prepares and sends a notification through the channel to APNs, which pushes the notification to the target device..
I suggest reading the documentation for more information and how to use and configure. It's all there.
Push Notifications
I created an infographic to explain the workflow of push notifications. Hope this is helpful.
Device does not keep polling the server for the push notifications.
To keep it simple, consider an iPhone is connected to internet. On connecting to internet iPhone establishes connection to Apple Push Notifications server this connection is open connection which means data can be thrown to iPhone from server the moment data arrives to server.
Apple does not use HTTP protocol for Push notifications but if you understand HTTP Protocol its almost a similar methodology.
http://en.wikipedia.org/wiki/Push_technology#HTTP_server_push
There is a really nice exaplanation of push notifications in this article.
In iOS, apps can’t do a lot in the background. Apps are only allowed to do limited set of activities so battery life is conserved.
But what if something interesting happens and you wish to let the user know about this, even if they’re not currently using your app?
I have never coded an App with Push Notifications, and I have a very general question. Does the publisher of the App have control to push out a notification whenever they want after the App is released on the App store? I mean, for example, if an App has push notifications enabled, is there some sort of dashboard somewhere where the App developer can instantaneously push out a notification to everyone that has downloaded the App? (Assuming they have push notifications enabled)
If your app supports Push Notifications, you have to provide your own server that communicates with Apple's push infrastructure. You can implement whatever sort of dashboard you want in your server. (In lieu of actually providing this yourself, you could also use a third-party provider such as Urban Airship.)
An overview of how your provider interacts with Apple's service is here: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html