4 votos

¿Cómo se hace un iDevice (iPhone o iPad) recibir notificaciones "push"?

Un iDevice (iPhone o iPad) recibe notificaciones. Incluso cuando el dispositivo está durmiendo.

Apple llama a estos "notificaciones push".

¿Cómo funciona el dispositivo en iOS recibir estas notificaciones? Hay periódicos acciones involucradas? Si es así, que las acciones y con qué frecuencia ocurren?

5voto

vapple Puntos 16

A partir de la Notificación Push de Apple, el Servicio de documentación:

Cada dispositivo establece una acreditados y cifrado de conexión de IP con los Apn y recibe notificaciones a través de esta conexión persistente.

Esto significa que se utiliza algún tipo de zócalo-base de conexión persistente. Podría ser su propio protocolo, o WebSocket, etc. El "periódico" acciones que se están preguntando acerca suelen aplicarse en estos protocolos en el nivel más bajo posible mediante el uso de sockets TCP/IP y están siendo constantemente encuestados para los nuevos datos en el zócalo. Cuando los datos de terminar de leer el zócalo, se activa un evento para ir a realizar alguna acción, como por ejemplo, mostrar una notificación en el dispositivo.

Para explicar con más detalle, la forma en que tomas el trabajo es el dispositivo realiza una conexión a un servidor remoto, el servidor remoto empuja datos a tu dispositivo, y se coloca en el búfer del socket, el dispositivo lee el búfer del socket y hace algo con los datos. En el momento en que los datos se envíen a tu dispositivo, el dispositivo proceso. Esto es debido a que el dispositivo está buscando nuevos datos en el búfer del socket todo el tiempo. Intenta leer los datos, y si obtiene los datos, se envía a los procesados y, a continuación, intenta volver a leer los datos; si es que alguna vez no recibe datos, sólo se trata de volver a leer los datos para siempre. Si la conexión con el servidor remoto nunca se desconecta, sólo intenta conectarse de nuevo hasta que lo logre.

La documentación del código vinculados anterior está tomado de Impulsar el ASIO de la biblioteca , que es ampliamente utilizado para sockets en C++. Es la aplicación y uso se puede simplificar de la siguiente manera:

01 start program
02 try to connect to server using socket
03 if not connected to server, goto 02
04 try to read data on socket
05 if data was read, process data
06 goto 03

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X