Cómo implementar el chat a través de GCM en la aplicación de Android

Trabajo para una empresa de desarrollo móvil a medida que se especializa en mensajería instantánea. Llevamos más de 5 años desarrollando soluciones de chat.

Voy a responder esta pregunta con respecto a FCM (Firebase Cloud Messaging) ya que FCM es la nueva versión de GCM. Puede ver las preguntas frecuentes sobre esto aquí.

Recomendaría el ChatSDK para iOS y Android. Estos son dos proyectos de código abierto que nuestra compañía ha lanzado a Github con una licencia MIT. Esto significa que puede descargar, modificar y distribuir el código sin obligación para nosotros.

Recomendaría descargar un chat de código abierto por varias razones:

  • Costo: Desarrollar este código usted mismo es extremadamente lento y costoso. La descarga del código fuente le permite utilizar sus recursos para modificar su código u obtener una aplicación lanzada rápidamente.
  • Control: muchas empresas de chat no le permiten modificar su API de chat, lo que reduce su control. Esto lo encierra en los servidores que usan y a menudo puede significar que tienen acceso a sus datos de usuario.
  • Soporte y documentación: admitimos completamente nuestro código y tenemos documentación completa sobre cómo migrar el chat a su proyecto y configurarlo. También puede publicar problemas en la página de Github o enviarnos un correo electrónico directamente y le enviaremos el proyecto.
  • Crecimiento: muchas soluciones de chat solo funcionarán en una sola plataforma. Esto puede estar bien inicialmente, pero si su aplicación es exitosa, no querrá tener que volver a escribir la mayoría del código para habilitarla en una nueva plataforma. ChatSDK viene en ambas plataformas directamente de la caja.

La manera más rápida:

Integre las bibliotecas Applozic Mobile y Web Chat que lo ayudarán a comenzar a conversar en media hora. Y la belleza es que ni siquiera necesitaría desarrollar u hospedar ningún servidor.

Forma estándar:

Cosas que necesitas para hacer una aplicación de chat:
1. Servidor:
Esto es necesario para almacenar toda la información del usuario, como nombre de usuario, contraseña e identificación de registro de gcm (veremos esto más adelante).
Puede alojarlo en cualquier lugar Amazon EC2, Google App Engine, etc.
API para inicio de sesión, envío de mensajes de chat, lista de mensajes, eliminar mensajes y muchos otros.

2. Registro para la notificación push de GCM:
Consulte el siguiente enlace:
Cómo crear un servidor para enviar notificaciones push con GCM a dispositivos Android usando Python

3. Android:
Regístrese en GCM y envíe la identificación de registro de gcm (como se menciona en el punto 1) al servidor para su actualización.
Diseñe la interfaz de usuario para enviar mensajes, envíe un mensaje a través de la API REST al servidor.
Puede optar por usar xmpp o mqtt para esto, pero como su pregunta era solo construir la aplicación básica de chat para que no entrara en detalles.

4. Comunicación de servidor a dispositivo y viceversa:
Ahora, al recibir un mensaje proveniente del dispositivo, envíe una notificación push al dispositivo receptor. Hay 2 formas de hacerlo:
i) Enviar la carga útil del mensaje junto con la notificación push
ii) Solo envíe “sincronización” y al recibir la notificación de “sincronización”, la aplicación de Android del receptor puede hacer una llamada al servidor, buscar todos los mensajes y mostrárselos al usuario. El beneficio de este enfoque es que los mensajes nunca se perderán. Tendrá que mantener el tiempo de “sincronización” en el lado de la aplicación de Android.

PD: Soy el cofundador de https://www.applozic.com

GCM no es una buena opción para el chat, debe considerar la muestra de código XMPP Simple para Android XMPP Chat (a través de QuickBlox SDK + API). Si desea saber acerca de GCM, use este enlace de notificaciones push de Android usando Google Cloud Messaging (GCM), PHP y MySQL.

Soy cofundador de Espreccino Technologies. Recientemente lanzamos un producto llamado Pepper Talk que ayuda a los desarrolladores a construir chat en la aplicación en sus aplicaciones.

Pepper Talk permite una rica mensajería de chat entre pares en la aplicación (móvil y web), ayudándolos a comunicarse fácilmente entre ellos. Pocos ejemplos de casos de uso son: los usuarios pueden chatear con sus amigos en una aplicación de juegos, el comprador y el vendedor pueden comunicarse entre sí en cualquier tipo de aplicación de mercado, el usuario interactúa con el representante de atención al cliente, etc. También ofrecemos una facilidad para que los usuarios compartan datos personalizados como imágenes y ubicación en tiempo real a través del chat. También tenemos soporte para el chat grupal.

Pocas características de Pepper Talk son:
– 1-1 y chat grupal
– Compartir fotos y ubicaciones a través del chat
– Compartir datos personalizados a través del chat
– Flujo de datos punto a punto en tiempo real
– Notificaciones de chat del sistema operativo
– Notificaciones de chat en la aplicación
– Indicadores de estado de recibos de mensajes enviados, entregados, leídos y con falla
– Indicador de escritura
– Indicadores de estado de la red
– Soporte multiplataforma (iOS, Android y web)
– Sincronización de mensajes de dispositivos múltiples
– Pantalla de chat con Bubble UI
– IU personalizable

Pepper Talk se proporciona como un SDK para iOS, Android y Web que se puede implementar en cualquier aplicación en minutos.

PepperTalk se puede probar rápidamente en Espreccino / PepperTalkSDK-iOS

No dude en compartir sus puntos de vista sobre el SDK en [correo electrónico protegido]

Las conexiones GCM CCS suenan bien como una opción para la aplicación de Chat, aunque no las he usado.
Servidor GCM Cloud Connection (XMPP)
1 Desventaja será la comunicación solo para Android.
2 Puede que haya algunos límites de limitación / cuota en el tráfico, utilizados por Google (aunque no estoy seguro).

Básicamente, para una aplicación de chat de producción completa GCM CCS no será una solución confiable IMO, pero sí, el chat se puede implementar usando GCM CCS.