¿Son compatibles con Android cerca de notificación push en tiempo real? [cerrado]

StackOverflow https://stackoverflow.com/questions/1243066

  •  12-09-2019
  •  | 
  •  

Pregunta

Recientemente he aprendido acerca de la capacidad de las aplicaciones de iPhone para recibir casi instantánea notificaciones a aplicaciones notificaciones a las aplicaciones .

Esto se proporciona en forma de notificaciones de inserción, un protocolo a medida que mantiene un siempre en conexión de datos para los paquetes binarios iPhone y mensajes a la aplicación, que aparece Alertas increíblemente rápidamente, entre 0,5 - 5 segundos de aplicación de servidor envían a tiempo de teléfono de respuesta de aplicaciones. Esto se envía como datos - en lugar de SMS - en muy, muy pequeños paquetes cargados como parte de los datos no piensa como mensajes entrantes.

Me gustaría saber si, usando Android, o bien hay una instalación similar, o si es posible implementar algo parecido a esto utilizando las API de Android. Para aclarar, defino similar a:

  • No es un mensaje SMS, pero un poco de solución impulsada por los datos
  • Como en tiempo real como es posible
  • ¿Es escalable, es decir, como la parte del servidor de una aplicación móvil, podría notificar a miles de instancias de aplicaciones en cuestión de segundos

aprecio la aplicación podría ser tire basa, estilo de petición / respuesta HTTP, pero lo ideal es que no quiero ser de sondeo que en gran medida sólo para comprobar la notificación; además, que es como goteo drenar el plan de datos.

¿Fue útil?

Solución

FCM FAQ es la nueva versión del GCM. Se hereda la infraestructura central de GCM para entregar mensajes de forma fiable en Android, iOS y Chrome. Sin embargo van a seguir para apoyar GCM, porque muchos de los desarrolladores están utilizando hoy en día GCM SDK para manejar notificaciones, y la actualización de la aplicación cliente lleva su tiempo.

A partir del 26 de junio de 2012 Google mensajería en la nube es la de manera preferente el envío de mensajes a las aplicaciones que se ejecutan en los dispositivos.

Anteriormente (y ahora obsoleto), el servicio fue llamado nube para dispositivos de mensajería .

Otros consejos

XMPP es una buena solución. Lo he utilizado para un pulsador se activa, en tiempo real, la aplicación Android. XMPP es de gran alcance, altamente extensible y fácil de integrar y utilizar.

Hay un montón de servidores XMPP libres (aunque por cortesía no se debe abusar de ellos) y hay servidores de código abierto que puede ejecutarse en una de sus propias cajas. OpenFire es una excelente opción.

La biblioteca que desea no es Polémica como se señaló anteriormente, es aSmack . Pero tenga en cuenta, este es un entorno de construcción -. Va a tener que construir la biblioteca

Este es un cálculo que hice en el impacto duración de la batería de una solución XMPP:

  

El cliente de Android debe mantener una conexión TCP persistente por parte de despertar periódicamente   enviar un latido al servidor XMPP.
  Esto impone claramente un costo en términos de consumo de energía. Una estimación de este coste es   proporcionado a continuación:

     
      
  • Uso de una batería 1400mAh (tal como se suministra en el Nexus One y HTC Desire)
  •   
  • Un dispositivo de reposo, conectado a una red 3G, utiliza aproximadamente 5 mA
  •   
  • El despertador, latido del corazón, el ciclo del sueño se produce cada 5 minutos, tarda tres segundos   para completar y utiliza 300mA
  •   
  • El costo en uso de la batería por hora, por tanto, es:   
        
    • 36 segundos 300mA = 3mAh envío de latidos del corazón
    •   
    • 3600 segundos = 5 mA 5mAh en ralentí
    •   
    • 4:95 + 3 = 7: 95mAh combinado
    •   
  •   
  • Una batería 1400mAh dura aproximadamente 11,6 días en ralentí y 7,3 días cuando   ejecutar la aplicación, lo que representa una reducción aproximada del 37% en   duración de la batería.
  •   
  • Sin embargo, una reducción en la vida de la batería de 37% representa el peor caso   en la práctica, dado que los dispositivos son rara vez totalmente inactivo.
  •   

Hace poco empecé a jugar con MQTT http://mqtt.org para Android como una manera de hacer lo que estás pidiendo (es decir, no SMS, pero basada en los datos, entrega casi inmediata de mensajes, escalable, no de votación, etc.)

Tengo un blog con información de fondo sobre esto en caso de que es útil http: // dalelane .es / blog /? p = 938

(Nota:. MQTT es una tecnología de IBM, y debo señalar que yo trabajo para IBM)

Tener un vistazo a la plataforma Xtify . Parece que esto es lo que están haciendo,

Google se deprecia C2DM, pero en su lugar su introducción GCM (Google Cloud Messaging) No creo que la suya todo contingente y es gratis! Se requiere Android 2.2 o superior, aunque! http://developer.android.com/guide/google/gcm/index.html

Si usted puede depender de las bibliotecas de Google estar ahí para usted apunta mercado, entonces es posible que desee llevan a cuestas en GTalk funcionalidad (el registro de un recurso en el nombre de usuario existente - la interceptación de que los mensajes como vienen en una BroadcastReceiver).

Si no es así, y espero no se puede , entonces estás en empaquetamiento sus propias versiones de XMPP . Este es un dolor, pero puede ser más fácil si XMPP se incluye por separado como una biblioteca independiente.

También puede considerar PubSubHubub , pero no tengo ni idea de que el uso de la red de la misma . Creo que está construido en lo alto de XMPP.

He estado buscando en esto y PubSubHubBub recomendado por jamesh no es una opción. PubSubHubBub está destinado a comunicaciones entre servidores

  
    

"Estoy detrás de un NAT. ¿Puedo suscribirse a un Hub? El cubo no se puede conectar a mí."

         

/ admin

  
     

No, PSHB es un servidor de servidor a   protocolo. Si estás detrás de NAT, que está   no es realmente un servidor. Si bien hemos   pateado ideas para PSHB opcional   extensiones para hacer que cuelga obtiene ( "de largo   sondeo ") y / o de mensaje de sondeo   para este tipo de clientes, que no está en el núcleo   Especificaciones. La especificación de núcleo es   servidor a servidor solamente.

     

/ Brad Fitzpatrick, San Francisco, CA

     

Fuente: http://moderator.appspot.com/#15/ e = 43e1a & t = 426ac & f = b0c2d (enlace directo no es posible)

He llegado a la conclusión de que el método más simple es utilizar empuje Comet HTTP. Esto es tanto una solución simple y bien entendida, pero puede también ser reutilizado para aplicaciones web.

Hay un nuevo esfuerzo de código abierto para desarrollar una biblioteca Java para las notificaciones push en Android, utilizando el servidor cometa Meteor como backend. Puede comprobarlo en el Proyecto Deacon Blog . Necesitamos desarrolladores, así que por favor a difundir la palabra!

No puedo encontrar dónde lo leí en el, pero creo que Gmail utiliza una conexión TCP abierta para hacer el push e-mail.

A medida que se ha ido GTalk desde el SDK, que podría ser una buena idea para hacer un sistema de mensajería push 'estándar'. De esta manera, sólo un servicio tiene que correr, sólo una conexión TCP adicional debe ser abierto. Las solicitudes deben hablar con el uso de este servicio Intents y deben solicitar el permiso para enviar y recibir notificación del servicio. El servicio, entonces debe notificar al usuario una nueva aplicación quiere enviar y recibir mensajes. El usuario tendrá entonces conceder o denegar el permiso, por lo que se mantiene el control. La aplicación se registrar una acción + categoría de servicio, por lo que el servicio sabe cómo entregar el mensaje empujado.

¿La una buena idea o no?

¿Por qué no te vas con la implementación de XMPP. en este momento hay tantos servidores públicos disponibles, incluyendo Gtalk, Jabber, etc. ciudadela Para Android hay un SDK está disponible también nombrado como TORTAZO. Esto es lo que no puedo decir una notificación de inserción, pero utilizando el XMPP puede mantener una conexión abierta entre el cliente y el servidor que permitirá una comunicación bidireccional. Significa Android cliente y el servidor ambos pueden comunicarse entre sí. En la actualidad esto satisfacer la necesidad de empuje en el androide. He implementado un código de ejemplo y lo que realmente funciona muy bien

he desarrollado recientemente http://pushdroid.org es una aplicación única que debe ser instalado en el teléfono igual Google ha implementado en 2.2 esto funciona de 1,5 y está transmitiendo a través de la intención.

Google ha anunciado recientemente (18May2016) que Firebase es ahora es una plataforma unificada para los desarrolladores móviles, incluyendo casi en tiempo real empuje notifications.It también es multiplataforma:

  

La compañía ofrece ahora todos los usuarios de base de fuego libre e ilimitado   notificaciones con soporte para iOS, Android y la web.

fuente

El problema con GCM es que hay una gran cantidad de configuración implicados en el proceso:

  • Hay que añadir un montón de repetitivo a que la aplicación para Android
  • Es necesario configurar un servidor externo para comunicarse con el servidor de GCM
  • Usted tendrá que escribir pruebas

Si te gustan las cosas simples (como yo) que debe tratar Urban Airship . Es (en mi humilde opinión) la forma más fácil de utilizar GCM en su aplicación sin tener que hacer un montón de configuración. También le da una interfaz gráfica bastante para probar que sus mensajes GCM se entregan correctamente.

Nota: No estoy Afiliated con Urban Airship de ninguna manera

Ellos tienen sus oyentes, que tiene que ser utilizado por usted por el uso de sus clases de biblioteca en el código. Usted no necesita preocuparse acerca de empujar. Usted tiene que enviar el mensaje al servidor de servidor empujará el mensaje al dispositivo. Ellos usan OAuth. En cuanto a los protocolos, hay dos métodos que utilizan CCS y XMPP. CCS sólo utiliza XMPP como una capa de transporte autenticado, lo que puede utilizar la mayoría de las bibliotecas XMPP para administrar la conexión. Para enviar notificaciones a dispositivo con el que se puede escribir código en la aplicación de Android para enviar, así como su código de servidor. el mensaje de envío se hará solamente por su código. Resto será atendido por Google servidor en caso de GCM. Puede comprobar los detalles en este enlace

http://developer.android.com/google/gcm/server.html

Además, por cuestiones de seguridad

Google Cloud Messaging Security https://groups.google. com / foro / #! tema / android-GCM / M-EevBitbhQ

En caso de que su aplicación no se está ejecutando a continuación, también dispositivos pueden recibir notificación porque usted tiene que escribir código para los oyentes de difusión. En el fondo se estará escuchando al servidor y siempre que cualquier paquete de mensajes estará ahí que recibirá el mensaje como notificación. Android tiene el servicio que necesita para no molestar al respecto. Sólo tiene que utilizar esos recursos utilizando la clase de biblioteca que hace que su trabajo sea más fácil y dejar que escriban si su aplicación no se está ejecutando a continuación, también se recibiera notificación. Obviamente, habría algún oyente whick hacer la aplicación para recieve.Check "reciba el mensaje" de este enlace

http://developer.android.com/google/gcm/client.html

Se acccept petición de los usuarios también. Para GCM lo hará. Por favor marque "Enviar un mensaje"

http://developer.android.com/google/gcm/client.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top