¿Cuáles son los pros y los contras de construir un sistema de chat basado en XMPP frente a una solución de terceros para implementar la mensajería instantánea a gran escala para un sitio?

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

  1. Apretón de manos de larga sesión
  2. XML es detallado
  3. Incluso el protocolo central es demasiado complejo y detallado
  4. El flujo basado en XML hace que la estructura sea ineficiente (principalmente para el servidor)
  5. 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.

Hay muchos pros que superan a los contras. No veo ningún inconveniente teniendo en cuenta los beneficios económicos involucrados en la adopción de un estándar abierto que es tan avanzado como XMPP / Jabber.

Lo he desarrollado utilizando el conjunto de productos de http://www.igniterealtime.org/pr … IgniteRealtime. Son excelentes productos.

El servidor XMPP, OpenFire, viene con una herramienta integrada de administración de cuentas y administración de servidores. Tiene una interfaz web genial y es muy fácil de conseguir.

El cliente, usando Smack API, fue muy fácil de construir. Me tomó como 5 horas configurar todo. Altamente personalizable y es de código abierto.

OpenFire también es compatible con BoSH, que habilita XMPP a través de HTTP. Si puede actuar correctamente y crear una aplicación web de encuestas, el cliente web estará listo en otras 5 horas.

XMPP es definitivamente el camino a seguir. Los beneficios son inmensos.

La elección no es binaria. En la medida en que tiene la intención de hacer un sistema de mensajería instantánea / chat, muchas de las mejores opciones de terceros son implementaciones XMPP. La pregunta es si desea crear, personalizar o comprar, ya que hay componentes de código abierto para la opción 1, soluciones integradas de código abierto para la opción 2 y opciones comerciales para 3.

More Interesting

¿Por qué es nginx mejor que Apache para servir contenido estático?

¿Qué es una buena compañía que proporciona servicios de centro de datos: manos remotas, servidores de instalación y rack, instalación de servidores de parches, etc.

¿Hay productos de código abierto como cPanel?

Servidores: ¿Cómo afecta IOWAIT el promedio de carga de un sistema?

¿Dónde puedo obtener información sobre buenas tarjetas de red para servidores Linux?

¿Qué son los servidores de correo electrónico?

¿Qué puedo hacer para alojar un sitio web que he creado con WordPress y el servidor WAMP? ¿Cómo puedo transferirlo de WAMP a un servidor en vivo?

¿Hay alguna forma de configurar un servidor de correo localmente en una PC para un desarrollo web?

En promedio, ¿cuál es la vida útil promedio del disco del servidor?

¿Cuáles son los pros y los contras de construir un sistema de chat basado en XMPP frente a una solución de terceros para implementar la mensajería instantánea a gran escala para un sitio?

¿Dónde comienzo a diseñar un servidor de aprendizaje automático?

¿Cuál es un buen libro que explica visualmente cómo funcionan las redes de Internet y aplica la teoría de redes a las estructuras del lado del servidor (PHP, Python, Ruby, etc.)?

¿Qué infraestructura de servidor se requiere para servir 5 millones de páginas vistas por día?

¿Hay alguna buena razón para evitar instalar Git en su servidor web?

¿Cuál es la razón para continuar manteniendo las imágenes de Facebook eliminadas por el usuario en los servidores FB?