¿Cómo funciona una aplicación de mensajería en segundo plano?

Depende del sistema operativo del teléfono inteligente.

En iOS , las aplicaciones en segundo plano están inactivas. iOS 7 cambia un poco y las aplicaciones pueden actualizarse periódicamente incluso cuando están en segundo plano.

En el contexto de una aplicación de mensajería, esto significa que una aplicación puede buscar nuevos mensajes. Si se trata de una aplicación de mensajería multidispositivo como Talk.to o Facebook Messenger, puede sincronizar y actualizar las conversaciones que han tenido lugar a través de otros dispositivos.

Por lo general, sin embargo, la aplicación simplemente permanece inactiva. Las aplicaciones de mensajería utilizan mensajes de inserción, ya sea a través del servicio de inserción de Apple o de un servicio de terceros como Urban Airship. La opción de uso que depende del desarrollador de la aplicación. Una vez que llega un mensaje push, un usuario puede interactuar con él para abrir la aplicación.

En Android , las aplicaciones pueden permanecer despiertas en segundo plano durante mucho tiempo. Sin embargo, eso es una descarga de batería. Por lo tanto, las aplicaciones de mensajería permanecen despiertas durante un tiempo fijo (generalmente ~ 1 o 2 minutos) cuando se ponen en segundo plano.

Esto se hace para mejorar el rendimiento y la capacidad de respuesta en caso de que llegue un mensaje justo después de que un usuario salga de la aplicación, que a menudo es el caso. Después de eso, se van a “dormir” o se vuelven inactivos.

La mensajería push también se usa en Android. Cuando llega un mensaje push, la aplicación “se despierta” en segundo plano. Puede actualizarse con el mensaje que ha llegado y sincronizar conversaciones.

Esto es diferente a lo que sucede en iOS, donde la aplicación permanece inactiva al llegar un mensaje push, hasta que el usuario inicia explícitamente la aplicación.

La mayoría de las aplicaciones de chat logran esto presionando, por lo que los archivos en este caso se envían chats al usuario que no sea el usuario que lo solicita (tira). Los programas centralizados como IRC y XMPP permiten empujar.

Esto presupone que la aplicación siempre está abierta, eso no es una terminación del enlace / respuesta. Con estos, a pesar de que las aplicaciones están “cerradas”, todavía están “abiertas”.

Hay dos enfoques principales:

  1. Sondeo: la aplicación se encuentra en segundo plano y sondea periódicamente el servidor para preguntar si hay algún mensaje nuevo. También puede mantener abierta una conexión inactiva y el servidor envía un mensaje inmediatamente cuando hay algo nuevo. Esto es muy ineficiente.
  2. Inserción nativa: si el sistema operativo tiene un mecanismo estándar para la inserción, en lugar de que todas las aplicaciones se mantengan vivas y mantengan las conexiones abiertas, la aplicación puede conectarse al mecanismo de notificación nativa del sistema operativo. Esto activa la aplicación cuando se recibe un mensaje y luego la aplicación puede hacer algo con él.