Para implementar la mensajería instantánea en una aplicación móvil, hay dos enfoques principales que podría adoptar. Usar un servidor alojado como servicio o usar XMPP.
Backend como servicio / Mensajería como servicio
Hay una gran cantidad de compañías que ofrecen back-end en tiempo real y mensajería alojada como servicio. Revisaré las principales ofertas y proporcionaré algunas fortalezas y debilidades.
- ¿Por qué todas mis aplicaciones de Android consumen mucho almacenamiento incluso si su tamaño es inferior a 50 MB?
- ¿Cómo aprender Android? ¿Cuáles son algunos sitios web sugeridos?
- ¿Es Adobe AIR la solución adecuada para el desarrollo de juegos móviles?
- ¿Qué herramientas necesitaré para crear una aplicación con un equipo y poco conocimiento de Java?
- ¿Qué cursos de desarrollo de aplicaciones de Android son los mejores?
Firebase base de datos en tiempo real
Firebase es el servicio de base de datos en tiempo real de Google. Es relativamente único entre los otros servicios, ya que le permite almacenar datos en la nube y obtener actualizaciones en tiempo real cuando esos datos cambian. Junto con el hecho de que Firebase también ofrece notificaciones push, almacenamiento de archivos, alojamiento y una capa de autenticación de usuario; Esto significa que puede crear una aplicación totalmente funcional solo con Firebase. Firebase es muy adecuado para la mensajería instantánea. Esto es probable porque Firebase fue un spin-off de los fundadores de inicio de mensajería web anterior.
También hay una biblioteca de mensajería de código abierto con todas las funciones que se basa en Firebase. Incluye múltiples tipos de mensajes; chats privados, grupales y públicos; perfiles de usuario, etc. El proyecto está disponible en Github – Firebase Chat SDK para Android.
Pusher / PubNub transmisión de datos en tiempo real
Agrupo estos servicios porque son bastante similares. Le permiten transmitir datos de un dispositivo a otro en múltiples configuraciones: 1 a 1, 1 a muchos, muchos a muchos. Esto permite canalizar mensajes entre dispositivos. La diferencia entre estos servicios y Firebase es que no proporcionan el almacenamiento de datos ni ninguna infraestructura de autenticación. Esto significa que necesitaría un servidor de aplicaciones existente para usar su servicio.
Transmisión de mensajes de capa
Layer ofrece un servicio para transmitir mensajes entre dispositivos. Piense en ello como una versión de Pusher o PubNub que está específicamente diseñada para la mensajería. Le permiten agregar archivos adjuntos a los mensajes y proporcionan algunas funciones básicas para bloquear a los usuarios. La capa no proporciona ninguna autenticación, por lo que necesitaría su propio servidor de aplicaciones.
También escuché algunos informes anecdóticos de que su plan de precios se encarece muy rápidamente, así que revíselo cuidadosamente antes de ir con ellos. También debe leer sus términos y condiciones cuidadosamente porque parece que conservan el derecho de vender los datos de sus usuarios a terceros.
XMPP
XMPP es el marco estándar de la industria desde que se creó a finales de los 90. Alimenta una gran cantidad de sistemas de chat corporativos, así como aplicaciones populares como Skype, WhatsApp y Facebook Messenger. Los tres servidores XMPP de código abierto más populares son:
- ejabberd
- Prosodia
- Abran fuego
Existen varios clientes XMPP de código abierto para Android, pero la mayoría de ellos tienen licencias que no son comercialmente compatibles. Si quisieras construir tu propio cliente, te recomendaría usar Smack.
XMPP es bueno porque ofrece muchas funciones de mensajería avanzadas y porque podría alojar el servidor usted mismo.
Actualizar:
Se agregó una pregunta en el comentario que creo que necesita una respuesta completa.
¿Es posible hacer una aplicación similar a Telegram o Kik en Firebase sin usar ningún otro sistema de back-end …
La respuesta corta es que el 90% de las veces sí y el 10% de las veces no. Hay ciertas características que requerirán un servidor de aplicaciones. Dos grandes serían: autenticación y cifrado de dos factores.
Firebase es excelente cuando los datos en el servidor son propiedad del usuario. Por ejemplo, un hilo pertenece al creador, un mensaje pertenece al remitente, etc. Sin embargo, hay casos en que los datos pertenecen al administrador; esto podría ser un secreto API o una clave de cifrado. Estos son datos que nunca deben compartirse con el cliente.
Las aplicaciones de mensajería como Kik y Telegram tienen una gran cantidad de características y la gran mayoría se puede replicar usando Firebase solo. Sin embargo, si desea copiar todas las funciones, es posible que necesite un servidor de aplicaciones compatible.