Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Un servidor que envía notificaciones push a dispositivos Android e iOS

Nuestra organización tiene una aplicación de Android y una aplicación de iOS.

Queremos empezar a enviar notificaciones a estas aplicaciones.

Android tiene GCM. Apple tiene APNS.

Pero queremos crear una API que funcione tanto en android como en iOS.

¿Cuál es la forma más fácil de configurar un servidor para que cuando se necesita enviar una notificación push, sepa exactamente a qué servidor enviar el mensaje?

  • Android: administrar múltiples notificaciones push en el dispositivo de una aplicación
  • Servicio de notificación de Google / Apple Push (APNS / GCM)
  • No se pueden recibir mensajes con Google Cloud Messaging para Android (no la biblioteca de ayuda)
  • Firebase onMessageReceived no llamado cuando la aplicación está en segundo plano
  • Notificación de la mensajería en la nube de Firebase Vibración
  • Analizar: enviar notificaciones push desde la aplicación
  • ¿Está com.google.android.c2dm.intent.RECEIVE todavía en uso?
  • Al hacer clic en la notificación no se abre la actividad mencionada
  • 3 Solutions collect form web for “Un servidor que envía notificaciones push a dispositivos Android e iOS”

    Como un poco de fondo esto es para un entorno universitario, donde múltiples aplicaciones de colegios, así como la educación a distancia puede estar utilizando el servicio. Este es el enfoque que estamos utilizando en nuestra organización. Si observa la forma en que APNS funciona, se puede utilizar simplemente enviando una llamada web al servicio APNS con el identificador de token. GCM está muy cerca del mismo tipo de sistema. Básicamente, crear un paquete JSON y enviarlo al servicio deseado.

    Estos son los pasos que utilizamos para crear este servicio.

    1. Los administradores del servidor crearon un servidor y una base de datos que se pueden llamar para recopilar los tokens de los dispositivos android y ios. Cuando el dispositivo se registra también enviamos qué tipo de dispositivo es. Esto es posible ya que estamos enviando datos a la base de datos que se ha creado.

    2. A partir de aquí, a continuación, creó un par de secuencias de comandos de python que envían los datos hacer el servicio deseado, ya sea ios o android. Estos scripts recopilan los datos apropiados de la base de datos y envían los datos empaquetados (paquete JSON) a APNS para el mensaje ios y GCM para la nube google.

    3. También creamos una interfaz web para que aquellos que necesitan enviar mensajes a los dispositivos pueden.

    El resto de la implementación depende de usted para decidir la mejor manera de utilizar el servicio. Por ejemplo, cuando hay que buscar dispositivos no válidos, ya que estamos planeando utilizar este mismo servidor para múltiples aplicaciones, podemos enviar el tipo de dispositivo, token, aplicación o cualquier otra cosa que sea necesaria para que una aplicación lo distinga de otros que producimos de manera que Cada aplicación que quiera utilizar el servicio puede. Espero que esto ayude y te da una idea de cómo lograr esto.

    Yo uso un servicio llamado Parse para hacer mis notificaciones push a Android e iOS. Tienen gran documentación y bibliotecas disponibles. Puede obtener algunos detalles aquí: https://parse.com/products/push

    Para APNS, Tal vez usted puede considerar esta versión bifurcada de PyAPNS que ha mejorado el soporte de mensajes.
    https://github.com/jimhorng/PyAPNs
    Lo que significa que capturará la respuesta de error para los mensajes de error y resentirá el mensaje que son descartados por APNS mientras se envía entre mensajes de error y la recepción de la respuesta de error.

    Solución:

    • Conexión de socket ssl no bloqueante para enviar notificaciones sin esperar respuesta.
    • Un hilo separado para comprobar constantemente la respuesta a errores de la conexión de lectura.
    • Un búfer de notificación enviado que se utiliza para reenviar la notificación que se envió después de una notificación errónea o una conexión arbitraria cerrada por apns. (Referencia a la solicitud de extracción de apns no bloqueantes por minorblend, mensaje mejorado por hagino3000)

    Resultado:

    • Enviar notificación con un rendimiento de 1000 / seg.
    • En el peor de los casos cuando la primera notificación enviada falló, respuesta de error responde después de 1 segundos y 999 notificación enviada son descartados por APNS en el tiempo medio, todas las 999 notificaciones descartadas serán reenviadas sin perder ninguna de ellas. Con la misma lógica, si se produce un error en la notificación, se resentirá el resto de la notificación de reenvío después de la fallida.

    Para GCM, puede consultar https://github.com/geeknam/python-gcm

    Para envoltorios genéricos compatibles con ambos o más proveedores móviles: https://github.com/Redth/PushSharp

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.