studio notificaciones new firebasemessagingservice firebaseinstanceidservice android instant-messaging google-cloud-messaging

notificaciones - push notifications android



Mensajería instantánea en Android con Google Cloud Messaging (4)

Estaba mirando el nuevo Google Cloud Messaging (GCM) y me preguntaba si es posible usar GCM para la mensajería instantánea en su aplicación de Android.

Vi que puede enviar datos, como un mensaje, desde un servidor, pero ¿también es posible enviarlos de un dispositivo a otro? ¿Y cómo funcionaría esto? Algún código de ejemplo sería muy útil ...

Tnx!


Es posible que desee ver cómo un servidor envía un mensaje al Servicio GCM. Es posible usar php en el lado del servidor, por lo que debería ser posible adaptar eso a una solicitud POST directamente desde su aplicación. Sin embargo, para comunicarse necesita los identificadores registrados de los dispositivos a los que desea enviar datos. Significa que necesitarás algo para almacenar y conseguirlos. La mejor solución sería su propio servidor (web) que almacena todos los identificadores y maneja el envío del mensaje.


Los documentos oficiales de Google Cloud Messaging para Android sí mencionan que GCM puede usarse para desarrollar una aplicación de mensajería instantánea.

... o podría ser un mensaje que contenga hasta 4kb de datos de carga útil (por lo que aplicaciones como la mensajería instantánea pueden consumir el mensaje directamente).

Así que seguimos adelante y creamos una aplicación de mensajería instantánea utilizando GCM. El lado del servidor es impulsado por Google App Engine. Puedes leer el tutorial completo aquí. Cree una aplicación de mensajería instantánea utilizando Google Cloud Messaging (GCM)

Por lo tanto, es posible utilizar GCM para la mensajería instantánea en Android, para responder a su pregunta. Sin embargo, la confiabilidad de GCM en comparación con XMPP para IM es otro tema.



Sólo mis dos centavos:

Creo que no deberías usar GCM para enviar mensajes instantáneos. Debería tener un servidor dedicado donde se conectarán sus aplicaciones de mensajería instantánea de Android, utilizando una conexión de socket persistente. Su servidor sabrá quién está en línea o no y, por lo tanto, puede presentar una "lista en línea" para todas las aplicaciones.

GCM puede entrar en juego, mientras que los usuarios están fuera de línea o no ejecutan su aplicación. Se les puede enviar un mensaje GCM para indicar ''XXXX quiere chatear''. Luego pueden iniciar su aplicación y se conecta automáticamente a una sesión de chat.

Google ha dicho que la entrega de mensajes GCM no está garantizada. Este solo motivo no es una buena idea confiar en ellos para la mensajería instantánea.