Estoy desarrollando un dispositivo que mide la temperatura, la humedad y la masa. Actualmente usa HTTPS para cargar datos a un servidor remoto. Ahora sé que hay un protocolo llamado MQTT que se afirma que es el "protocolo de Internet de las cosas".
¿En qué caso y por qué debería cambiar de HTTPS a MQTT?
mqtt
protocols
data-transfer
https
Bence Kaulics
fuente
fuente
El protocolo de transporte de telemetría MQ conocido como MQTT está diseñado para dispositivos que funcionan con baja potencia y bajo ancho de banda. Es un protocolo ligero de mensajes de publicación / suscripción que significa que cualquier otro dispositivo puede suscribirse a un tema en particular.
HTTP / HTTPS está diseñado como un protocolo de solicitud-respuesta para la computación cliente-servidor que nunca se preocupa por el uso de energía y tiene una gran sobrecarga de datos.
Use MQTT si:
MQTT se basa en TCP como protocolo de transporte, lo que significa que, por defecto, la conexión no utiliza una comunicación cifrada. Para cifrar toda la comunicación MQTT, la mayoría de los corredores MQTT, como HiveMQ, permiten usar TLS en lugar de TCP simple.
Ref: HiveMQ
fuente
MQTT (Message Queue Telemetry Transport) parece ser adecuado para la aplicación propuesta.
Es liviano con respecto al ancho de banda (el tamaño de paquete más pequeño con un encabezado de solo 2 bytes) y la huella del código del cliente (lo que le permite ejecutarse en clientes delgados como el ESP8266, cliente típico de IoT). Los datos transmitidos reducidos son beneficiosos para una mayor duración de la batería para clientes alimentados por baterías fuera de la red, como sensores.
MQTT también ofrece métodos simples ( verbos ) que se adaptan bien a las tareas de IoT, como suscripciones duraderas que recuperan conexiones después de desconexiones inesperadas de clientes. En comparación con HTTP / HTTPS, también es más sencillo extraer datos del paquete (no se necesita un analizador).
fuente
Aquí escribí un artículo que muestra y la evolución del sistema de comunicaciones que teníamos en nuestro proyecto. Se trata de microservicios, pero puede considerar cualquier sensor como microservicio con su trabajo de recopilar y publicar cualquier tipo de datos de telemetría.
La conclusión más importante es que es mejor usar MQTT cuando solo necesita enviar un evento a algún lugar y no sabe nada sobre el destinatario. Y es mucho mejor usar HTTP (generalmente REST) cuando sabes algo sobre el destinatario y necesitas alguna respuesta, por ejemplo, en el caso de comandos de lo que sea.
Desde el punto de vista del tráfico, la CPU, la memoria y el consumo de energía, MQTT y HTTP son básicamente los mismos.
fuente
Con respecto a su presupuesto, MQTT es el "protocolo de Internet de las cosas":
Sí, hay una gran cantidad de desarrolladores que usan este protocolo (ver IoT Developer Survey 2018) pero CoAP (está ajustado a HTTP para IoT, basado en UDP) proporciona una alternativa para HTTP en caso de que desee utilizar una funcionalidad ligera de Solicitud / Respuesta dentro de su aplicación.
MQTT, por otro lado, proporciona una lógica incorporada de publicación / suscripción, lo que lo hace ideal para escalar (puede usar más puertas de enlace para una mayor cantidad de dispositivos). También hay una alternativa UDP (como CoAP a HTTP) que se llama MQTT-SN (MQTT para redes de sensores). Esto proporciona incluso una sobrecarga menor que CoAP, pero no hace uso de R / R.
fuente