¿Qué tecnología utiliza el Servicio de notificaciones push de Apple iOS (APNS) para mantener una conexión persistente con cada dispositivo para recibir notificaciones push tan rápidas?

Detrás de escena, se basa en el protocolo XMPP (Jabber) que usa la extensión pub-sub aunque esto no es visible ni para el desarrollador ni para el usuario.

Cada dispositivo IOS es un cliente XMPP conectado a la propia implementación de Apple de un servidor XMPP. Cada dispositivo IOS que tiene habilitadas las notificaciones Push se conecta a través de un socket TCP al servidor APNS en el puerto 5223. Esto se realiza a través del proceso “apsd”. Para ver algo de la diversión encubierta, siga las instrucciones aquí: https://devforums.apple.com/mess… y revise el archivo de registro.

Para cada aplicación en el dispositivo que tiene habilitada la notificación, se suscribe como tema. Como desarrollador de una aplicación, no puede interactuar en esta capa en el dispositivo, solo puede registrar su aplicación como una aplicación habilitada para inserción, por lo que no importa que Apple use XMPP más que como interés académico. La implementación personalizada probablemente tiene una implementación muy limitada de XMPP.

Otros en la red habían publicado rastros de XMPP cuando APNS salió por primera vez, es posible que pueda buscar APNS, XMPP, Pub-sub para encontrarlos.

En el lado del editor, utiliza un método exclusivo de Apple para publicar alertas. Las alertas van al servicio APNS que lo entrega al cliente en el puerto 5223.