2011-07-06 27 views
15

Tengo una aplicación para iOS que usa la notificación automática pero de vez en cuando no recibo una notificación en mi dispositivo cuando espero recibir una. Recibiría todas las notificaciones posteriores. Confirmé con mi backend para asegurarme de que todas las notificaciones se enviaran con éxito.¿Es confiable el servicio de notificación push de Apple?

Así que mi pregunta es: ¿es APNs casi 100% confiable o debería esperar perder algunas notificaciones aquí y allá debido a la conexión intermitente 3G/wifi?

Creo que APN funciona como un sistema de cola y lo intento de nuevo si no fue exitoso las primeras veces.

Respuesta

22

El servicio APN pondrá en cola los mensajes, pero Apple no garantiza la entrega de todos los mensajes. Solo el último mensaje de una aplicación se mantendrá en la cola cuando el usuario esté desconectado. Además, los mensajes antiguos pueden ser eliminados.

Local and Push Notification Programming Guide

de Apple Push Notification Service incluye una calidad de servicio por omisión (QoS) componente que realiza una y almacenamiento y retransmisión función . Si APNs intenta enviar una notificación pero el dispositivo está fuera de línea, la QoS almacena la notificación. Solo conserva una notificación por aplicación en un dispositivo : la última notificación recibida de un proveedor para esa aplicación. Cuando se reconecta el dispositivo fuera de línea , la QoS reenvía la notificación almacenada al dispositivo. El QoS conserva una notificación para un período limitado antes de eliminarlo.

+0

Gracias por la respuesta oportuna, Steve. En mi caso, no creo tener el problema con mensajes antiguos o demasiados a la vez. Probablemente es más como uno cada 10-20 minutos. y eso es ser generoso. –

+3

Andrew; luego, en su caso, si el usuario está fuera de línea (sin WiFi o 3G) durante 20-40 minutos, es posible que no obtenga 1 o 2 de los mensajes. – Steve

+0

Oh increíble. Buena edición. Esa podría ser la respuesta. –

1

Tengo un sitio web azure (y servicio móvil, bus de servicio, db, directorio activo, etc.) que envía notificaciones automáticas a una aplicación xamarin en un teléfono con Windows y un iphone. La primera notificación es recibida por ambos. La segunda notificación solo es recibida por el teléfono de Windows, no llega al iPhone. Si envío otra notificación, es recibida por ambos. Así que investigué el comportamiento un poco más y descubrí que si ametrallaba una serie de notificaciones (mecanografiadas a mano una por 2 segundos), el teléfono de Windows las recibió todas, pero el iPhone solo recibió la primera. Pero si espero un poco y envío una notificación, ambos dispositivos la reciben. La siguiente prueba es ver si las notificaciones siempre se reciben con un espacio de 5 minutos. Envió dos mensajes con un espacio de cinco minutos en el medio, tanto Windows Phone como iPhone recibieron ambas notificaciones.

Cuestiones relacionadas