Cómo mantener Socket.IO ejecutándose en segundo plano en iOS

Como mencionó Glyn Williams, usar el Servicio de notificaciones push de Apple ( APNS ) será un enfoque más fácil. Las ventajas son

  1. Comparativamente menos codificación. La aplicación debe registrarse para recibir notificaciones, luego puede recuperar los datos a través de la carga útil de notificación (hay una limitación de tamaño de datos) o mediante una solicitud de extracción de la aplicación.
  2. Este patrón es Servidor notificará a las aplicaciones si hay actualizaciones. Por lo tanto, será una entrega casi en tiempo real.

Pero aún así, si quieres hacer esto sin usar APNS , creo que técnicamente es posible. Dado que Apple ha ampliado mucho las capacidades de tareas en segundo plano desde iOS 9 en adelante.

Aún necesitamos más información sobre su aplicación. ¿Tu aplicación es una aplicación de VoIP ? Si es así, puede soportar tareas en segundo plano a largo plazo. Debe declarar esto en el archivo Info.plist .

O puede probar la búsqueda de fondo.

La siguiente documentación proporcionará información detallada sobre las tareas en segundo plano de iOS y su ejecución.

Ejecución en segundo plano

Je Sí, esto es un problema. Primero por qué hace esto:

Los tres principales usuarios avanzados de su teléfono son (en orden): pantalla, CPU y radios. (Dependiendo de la carga de la CPU, los radios pueden ser segundos a veces).

Cuando tienes un enchufe activo, las radios están encendidas. Y Apple está haciendo todo tipo de esfuerzos para mantener bajo el consumo de energía. Además, esto también reduce los minutos de datos del usuario.

Entonces tienes un par de soluciones. Puede verificar periódicamente el tráfico al abrir su socket un poco cada vez que verifique. Esto es una encuesta para el tráfico y puede ser logísticamente incómodo y aún usar mucha batería. Debe ejecutar una tarea en segundo plano, que es tiempo y recursos limitados.

Pero el sistema esencialmente ya hace esto. Este es el Servicio de notificaciones push de Apple (APNS). Realice su conexión inicial al servidor e inicie sesión. Luego, deje que el servidor le envíe una notificación APNS cuando surja algo relevante. Su aplicación puede volver a conectarse y manejarla.

Puede enviar una notificación silenciosa que su aplicación maneja en segundo plano, o una notificación regular que muestra un mensaje al usuario. Este último está destinado a llamar la atención del usuario para que inicie su aplicación, que se vuelve a conectar y obtiene los datos completos.

Sin embargo, hay muchos más detalles sobre esto para la aplicación y el servidor. Consulte la Guía de programación de notificaciones locales y remotas: descripción general de APN en los documentos de Apple.

Eso es lo que se supone que debe suceder. No se permite que las aplicaciones permanezcan allí acaparando recursos indefinidamente.

La solución es usar notificaciones.

Notificaciones para desarrolladores – Apple Developer