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.
- Cómo agregar y suscribir una entrada jabber a mi cuenta XMPP?
- Enviar y recibir IQ XMPP ASMACK Android
- Cómo recibir mensajes sin usar createChat para android XMPP chat smack api
- Transferencia de archivos android con smack
- Android: asmack (portado) o smack (parcheado)?
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.
- Agregar participantes a las salas de chat XMPP
- Cómo obtener la misma conexión xmpp de una actividad a otra?
- ¿Cómo agregar campos personalizados en elementos <message> de XMPP stanza / packet?
- agregar / sincronizar contactos automáticamente
- No se puede crear una sala de chat multiusuario (MUC) con la biblioteca aSmack para Android: "packet.DefaultPacketExtension no se puede convertir en paquete.MUCUser"
- XMPP "secuencia: error (conflicto)" cuando intenta volver a conectar o iniciar sesión
- Eventos XMPP en Android
- Google Cloud Messaging a través del protocolo XMPP (servidor que trabaja con PHP y XMPPHP). ¿Como funciona?
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?
- En la vista Web de Android, ¿puedo modificar el DOM de una página web?
- No se pudo encontrar la clase XXX referenciada desde el método XXX. <YYY>