Sí, seguro que pueden! Siempre que implemente correctamente el servicio en segundo plano en su aplicación, que se supone que mantiene la conexión abierta, por supuesto.
Pero primero concentrémonos en las diferencias entre XMPP y MQTT. ¿Qué son en realidad?
XMPP ( Protocolo de presencia y mensajería extensible ) nació como un protocolo para aplicaciones de mensajería. Jabber lo usa, Google Talk (hoy Hangouts) lo usa, WhatsApp lo usa . Es un protocolo de mensajería excelente y confiable, mucho más confiable que GCM. También tiene muchas guías de implementación / tutoriales / ejemplos.
- ¿Cuándo uso ORM?
- ¿Qué tan difícil es para un principiante aprender a crear un software de base de datos?
- ¿Qué hace el desarrollador front-end? ¿Qué tecnologías debería conocer y en qué aspectos de la aplicación web trabaja?
- ¿Puedo reemplazar completamente jQuery con Vue.js para el desarrollo de una aplicación?
- ¿Cuál es la diferencia entre el código JavaScript colocado dentro de una etiqueta de encabezado y el código colocado fuera de una etiqueta de cuerpo?
MQTT ( MQ Telemetry Transport ) , en cambio, nació como un protocolo de comunicación diseñado para dispositivos de baja potencia que tienen una capacidad de potencia limitada y baja potencia de cálculo. Es rápido y confiable, y utiliza muchos menos datos y potencia de lo que XMPP necesita para hacer exactamente el mismo trabajo. Facebook Messenger lo usa. Sin embargo, no es muy popular y puede faltar tutoriales / ejemplos para desarrolladores principiantes.
Aquí hay una pequeña tabla de comparación de la cantidad de datos que usan esos protocolos: XMPP versus MQTT: comparación de manzanas con peras
… y aquí hay una comparación del consumo de batería: Perfil de energía: HTTPS Long Polling vs. MQTT con SSL, en Android
Para concluir, cuál va a utilizar depende de usted .
Ambos son protocolos de aplicación buenos y confiables, aunque XMPP se basa en HTTP, lo que lo hace automáticamente más pesado pero no significa que sea menos adecuado para este trabajo.