What is a deterministic push down automaton?

What technology does the iOS Apple Push Notification Service (APNS) use to maintain a persistent connection with each device to receive such fast push notifications?

  • Apple Push Notification Service (APNS for short) is the centerpiece of the push notifications feature. It is a robust and highly efficient service for propagating information to devices such as iPhone, iPad, and iPod touch devices. Each device establishes an accredited and encrypted IP connection with the service and receives notifications over this persistent connection. If a notification for an application arrives when that application is not running, the device alerts the user that the application has data waiting for it.

  • Answer:

    Behind the scenes, it is based on the XMPP (Jabber) protocol using the pub-sub extension although this is not visible to either the developer or the user. Each IOS device is a XMPP client connected to Apple's own  implementation of an XMPP server.  Each IOS device that has Push  notifications enabled connects via a TCP socket to the APNS server on  port 5223. This is done via the "apsd" process. To see some of the undercover fun, follow the instructions here:  https://devforums.apple.com/message/205537 and check the logfile. For each application on the device that is notification enabled, it subscribes as a topic. As a developer of an application, you do not get to interact  at this layer on the device, you only get to register your application as a push-enabled app, so it does not really matter that Apple uses XMPP other than as academic interest.  The custom implementation probably has a very limited implementation of XMPP. Others on the net had posted XMPP traces when APNS first came out, you may be able to search APNS, XMPP,  Pub-sub to find them. On the publisher side you use an Apple  proprietary method to publish alerts. The alerts go to the APNS service  which delivers it to the client on port 5223.

Anonymous at Quora Visit the source

Was this solution helpful to you?

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.