Escribí la puerta de enlace XMPP para la API de chat de Facebook y trabajo en el equipo de infraestructura en tiempo real que es responsable del backend de chat en todas las interfaces.
Elegimos XMPP para nuestra API externa por razones obvias, es un protocolo maduro y mantenido con amplia aceptación y muchas soluciones estándar. Sin embargo, para nuestras aplicaciones móviles internas (p. Ej., Facebook Messenger) elegimos MQTT para transmitir mensajes en tiempo real de manera eficiente.
Algunas desventajas de XMPP
- ¿Cuánto tiempo tarda antes de que Google anonimice los registros del servidor?
- ¿Un ASUS VivoMini (i3-7100U) + 16GB DDR4 + 500GB SSD es suficiente para ser un buen servidor web usando la pila LEMP?
- ¿Cuál es la mejor manera de configurar un servidor privado compatible con HIPAA?
- ¿Cuáles son las ventajas de usar Cascade Server, un sistema de gestión de contenido web de Hannon Hill?
- ¿Cuál es el mejor servidor localhost para Windows?
- Apretón de manos de larga sesión
- XML es detallado
- Incluso el protocolo central es demasiado complejo y detallado
- El flujo basado en XML hace que la estructura sea ineficiente (principalmente para el servidor)
- No permite URL para la lista y fuerza su propia solución de almacenamiento en caché
Esos hacen que XMPP sea una mala opción para dispositivos móviles si desea ser eficiente en la duración de la batería, el tiempo para interactuar y la capacidad de respuesta. Un desarrollador inteligente escondería la complejidad y la verbosidad detrás de una puerta de enlace y trabajaría en una solución ad hoc, conozco a algunos que hacen eso.