Estoy trabajando en una aplicación de mensajería y tengo un dilema sobre cómo enviar datos del servidor al cliente.¿Puede la mensajería de servidor a cliente depender de APNS?
Estoy usando un diseño de servidor centralizado, donde los clientes usan NSURLConnection
para enviar mensajes al servidor, el servidor no guarda y administra los sockets abiertos y no puede enviar un mensaje para uno de los clientes. Entonces los clientes usan un temporizador y consultan el servidor cada 2 segundos para ver si hay nuevos datos esperándolos.
El problema con este enfoque es que el sondeo del servidor cada 2 segundos parecen matar a la batería muy rápido, así que pensé que tal vez de los clientes de votación el servidor, a uso APN * por lo que cuando el servidor tiene alguna nueva información ** para el cliente, el servidor enviará una notificación de inserción * ** al cliente, luego el cliente obtendrá los datos del servidor.
* use APNS - si el cliente lo permite, el cliente puede desactivar esta opción. Por lo tanto, verificaré si se permite la inserción cada vez que la aplicación ingrese en primer plano y, de no ser así, volveré al método de votación.
** Nueva información puede ser cualquier cosa, desde mensajes de texto hasta mensajes de administrador del servidor. (y hay muchos mensajes de administrador ...)
Por ejemplo, en mi aplicación, los usuarios pueden ver el estado de sus amigos (en línea/fuera de línea), por lo que si user1 y user2 son amigos, y user2 solo cambian su estado de online a fuera de línea, entonces el servidor debe enviar esta nueva información (mensaje de administrador = usuario2_abandono) a usuario1.
***Las notificaciones push servidor envía están vacías (sin datos/sonido), es sólo un disparador para el cliente para ir a buscar la nueva información, por lo que si un empuje se envía al cliente y la aplicación del cliente estaba cerca, él no notará nada. (si la aplicación se está ejecutando, obtendrá la nueva información del servidor)
¿Funcionará este enfoque con una aplicación de mensajería masiva que requiera notificaciones masivas?
Para ser más claros mis principales preocupaciones son: 1.
es lo suficientemente confiable que pueda usarlo como mi mecanismo de mensajería de servidor a cliente núcleo APN?
2. ¿Aprobará Apple potencialmente miles o cientos de miles de notificaciones automáticas por día desde mi servidor?
Tenga una mirada en SocketIO (sondeo largo) antes de construir usted es dueño de los mecanismos de votación. – Till