MQTT vs. XMPP ¿Qué debo elegir?

Visión de conjunto

Estoy enviando mensajes de ida y vuelta entre un cliente (teléfono Android) y un servidor (Windows Server). Utilizando una conexión persistente a través de TCP, qué protocolo sería la mejor solución. Estoy buscando rendimiento, escalabilidad, tamaño de mensajes y duración de la batería. Los mensajes deben llegar al destino en orden y no pueden ser duplicados.

MQTT

Esto parece ser la mejor solución, pero parece haber pocos ejemplos de implementación grande con muchos usuarios. No estoy seguro de si puedo integrar esto en el servidor de Windows, o si tendría que ser otra aplicación o servidor en ejecución. Finalmente, parece haber una falta de información en general.

XMPP

Esto parece tener mucha implementación, ejemplos, e incluso un libro:). Sin embargo, el objetivo principal parece ser para los clientes de mensajería instantánea y cosas como Google Talk. ¿Será esta una solución óptima para la mensajería entre el servidor y el cliente. Sé que actualmente XMPP se utiliza principalmente en arquitecturas cliente a servidor a cliente.

Por favor, corrija si estoy equivocado y gracias de antemano por cualquier orientación.

Depende de lo que usted esté intentando hacer y qué hardware está ejecutando.

MQTT tiene un tráfico de mantenimiento muy bajo. XMPP es un protocolo de mensajería instantánea y tiene una sobrecarga mucho mayor en el manejo de mensajes de presencia entre todos los clientes.

Si tiene una restricción de huella de memoria pequeña, entonces tener que manejar el analizador de XML puede hacer imposible el uso de XMPP.

Tenga en cuenta que MQTT significa Message Queue Telemetry Transport, es decir, es un protocolo de transporte y no define el formato del mensaje en absoluto – tendrá que proporcionar esto; XMPP es un protocolo de mensajería instantánea que define cuidadosamente todos los formatos de mensajes y requiere que todos los mensajes estén en XML.

Además de todo esto: MQTT es un protocolo de suscripción de publicación, XMPP es un protocolo de mensajería instantánea que puede ser extendido (utilizando XEP-0060) para soportar publicar suscribirse. Tienes que considerar esto cuando diseñes tu sistema.

Estamos encontrando MQTT para ser el triunfador tranquilo. Tu milage puede ser diferente.

Todo depende …

Sigue el reciente anuncio de LinkedIn en el que se discute el uso de MQTT en su aplicación para móviles.

Marca de alegría

(BTW Andy fue ligeramente en su referencia a nosotros.Nos estamos en el Centro de Innovación Educativa y Tecnología (CEIT), la Universidad de Queensland, Brisbane, Australia)

Creo que en resumen las ventajas de MQTT sobre XMPP son:

  • Capacidad de procesamiento: menos sobrecarga, más ligero
  • Texto binario vs texto sin formato
  • QoS en el lugar (Fire-and-forget, al menos-una vez y exactamente-una vez)
  • Pub / Sub en su lugar (XMPP requiere extensión XEP-0060)
  • No es necesario un analizador XML

Creo que probablemente está corrigiendo su evaluación de XMPP en que es un protocolo principalmente orientado a chat – también es bastante pesado y utiliza XML ampliamente haciéndolo detallado. Sé que la gente en CEIT en la Uni de Brisbane han estudiado específicamente las diferencias y usos óptimos para los dos protocolos. MQTT es muy ligero y de baja potencia – se ha utilizado para aplicaciones de telemetría y sensor durante más de 10 años y ha sido desplegado a gran escala por IBM y sus socios. La gente ahora está descubriendo que un simple protocolo como este es ideal para el desarrollo móvil.

¿Qué buscas exactamente lograr? El sitio mqtt.org tiene como objetivo proporcionar buenos enlaces al contenido. También hay canales IRC y listas de correo sobre el mismo. ¿Cómo podemos ayudar?

  • Falló porque: de.measite.minidns.hla.ResolutionUnsuccessfulException: Solicitando xxxx. IN AAAA produjo una respuesta de error NX_DOMAIN
  • ¿Qué servicios basados ​​en la nube puedo usar para alojar el servidor XMPP requerido para conectarse a GCS CCS?
  • Smack 4.1 Error de autenticación SASL
  • ¿Es bueno usar sólo GCM para el desarrollo de aplicaciones de chat para android ditching XMPP?
  • Android P2P juego multijugador (con a) XMPP / Google charla b) JXTA peerdroid c) de otra manera)
  • Cómo crear una cuenta de Smack 4.1
  • Cómo enviar el dispositivo a la notificación del dispositivo usando FCM sin usar XMPP o cualquier otro script.
  • Asmack inicio de sesión en Android 5.0 y superior
  • XMPP Group Chat Android
  • Notificaciones Push de XMPP (Openfire)
  • No se puede enviar o recibir presencia con ASmack
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.