En primer lugar, haré algunas suposiciones:
- está familiarizado con conceptos básicos de CS como cliente, servidor, comunicación de red, etc.
- estás familiarizado con el SDK de Android
- desea crear una aplicación simple, no una lista para la producción
Los supuestos anteriores son necesarios porque no quiero entrar en detalles técnicos tediosos. Prefiero presentarle los elementos clave para crear su aplicación móvil y darle la oportunidad de explorar todo esto en detalle por su cuenta. ¡Entonces, no perdamos otro momento!
Un flujo simple para enviar un mensaje entre los usuarios:
- ¿Cuál es la mejor aplicación para Android para administrar mi dinero?
- Cómo comenzar a crear juegos para Android
- ¿Por qué los usuarios de teléfonos inteligentes no aceptaron ampliamente la aplicación Allo?
- ¿Cuáles son las aplicaciones esenciales de Android?
- Cómo eliminar anuncios y ventanas emergentes que aparecen de aplicaciones de Android en teléfonos inteligentes
Cliente1 → Servidor → Firebase Cloud Messaging Service → Cliente2
Client1 y Client2 son instancias de su aplicación, cada una de ellas con un usuario diferente con sesión iniciada. Su aplicación debe proporcionar un mecanismo básico de autenticación para que los usuarios puedan crear cuentas, lo que les permite ser identificados de forma única en el sistema. Su aplicación también debe permitir que el usuario seleccione otro usuario de una lista para iniciar una conversación.
El servidor proporciona la API (digamos que usa REST) necesaria para operaciones como el registro y la autenticación de usuarios, obtener una lista de usuarios, etc. También debe proporcionar un punto final para enviar mensajes, básicamente, un lugar donde el Cliente1 puede decir “¡Yo, usuario 1, quiero enviar este mensaje al usuario2!”. El servidor sabe que ambos usuarios están presentes en el sistema, pero ¿cómo puede encontrar las instancias de aplicación de user2? ¡Aquí es donde funciona el servicio de mensajería en la nube de Google, su magia sucede!
Actualmente conocido como Firebase Cloud Messaging Service , este mecanismo identifica cada instancia de su aplicación con un token único. ¡Tenga en cuenta que primero debe registrar su aplicación para usar este servicio! Su aplicación debe implementar un par de servicios para registrarse con el servicio de mensajería en la nube y para poder recibir mensajes como notificaciones push . Si su registro en el servicio en la nube es exitoso, su instancia de aplicación recibe un token único . Puede vincular estos tokens con la cuenta de su usuario en el lado del servidor. Cómo implementar esta lógica, es su decisión.
Entonces, cuando el servidor recibe una solicitud de mensaje del usuario1 para el usuario2, sabe exactamente dónde encontrar al usuario2 utilizando sus tokens de instancia de aplicación. El servidor ahora puede volver a empaquetar la solicitud de mensaje como una solicitud para el servicio de mensajería en la nube con los tokens de aplicación de user2 como destinos.
¡Espero eso ayude! Aquí hay algunos enlaces para comenzar:
Firebase Cloud Messaging | Firebase
Notificaciones | Desarrolladores de Android
Transmitiendo datos de red usando Volley