Red de conocimiento del abogados - Bufete de abogados - ¿Cuál es la diferencia entre MQTT y Websocket?

¿Cuál es la diferencia entre MQTT y Websocket?

MQTT tiene poco que ver con WebSocket. No están al mismo nivel.

¿WebSocket? Muchos sitios web utilizan encuestas para implementar tecnología push. El sondeo significa que en un intervalo de tiempo específico (como 1 segundo), el navegador envía una solicitud HTTP al servidor y luego el servidor devuelve los datos más recientes al navegador. Las desventajas de votar son obvias. El navegador necesita enviar solicitudes continuamente al servidor. Sin embargo, el encabezado de la solicitud HTTP es muy largo y los datos reales transmitidos pueden ser muy pequeños, lo que genera un desperdicio de ancho de banda y recursos del servidor.

Comet utiliza AJAX para mejorar las encuestas y puede lograr una comunicación bidireccional. Pero Comet todavía necesita enviar solicitudes, y en Comet se utilizan ampliamente enlaces largos, lo que también consume mucho ancho de banda y recursos del servidor.

Como resultado, surgió el protocolo WebSocket. El navegador envía una solicitud al servidor para establecer una conexión WebSocket a través de JavaScript. Una vez establecida la conexión, el cliente y el servidor intercambian datos directamente a través de la conexión TCP. Una conexión WebSocket es esencialmente una conexión TCP.

WebSocket tiene grandes ventajas de rendimiento en la estabilidad de la transmisión de datos y el tamaño de la transmisión de datos. Websocket.org comparó las ventajas de rendimiento del sondeo y WebSocket:

El entrenamiento de rotación HTTP debe devolver 871 bytes cada vez, y websocket solo necesita 2 bytes cada vez.

Caso de uso A: 1000 clientes reciben un mensaje por segundo, rendimiento de la red (2 * 1000) = 2000 bytes = 16000 bits por segundo.

Caso de uso B: 10.000 clientes reciben un mensaje por segundo, rendimiento de la red (2 * 10.000) = 20.000 bytes = 160.000 bits por segundo.

Caso de uso C: 100.000 clientes reciben un mensaje por segundo, rendimiento de la red (2 * 100.000) = 200.000 bytes = 1, 600.000 bits por segundo.

El protocolo MQTT está diseñado para la comunicación entre una gran cantidad de sensores remotos y dispositivos de control que tienen una potencia informática limitada y operan en redes poco confiables y de bajo ancho de banda. Tiene las siguientes características principales:

La sobrecarga de comunicación es muy pequeña (el tamaño mínimo del mensaje es de 2 bytes), el volumen de transmisión es pequeño, la sobrecarga es muy pequeña (el encabezado de longitud fija es de 2 bytes ), se minimiza el intercambio de protocolos y el tráfico de red.

Cliente fácil de usar que admite una variedad de lenguajes de programación populares (incluidos C, Java, Ruby, Python, etc.);

Utiliza la mensajería de publicación/suscripción. patrón para proporcionar una publicación de mensajes múltiples y aplicaciones separadas.

Transmisión de mensajes de escudo de contenido de carga útil.

Utiliza TCP/IP para proporcionar conectividad de red.

Existen tres tipos de calidad de servicio para la publicación de mensajes, de modo que los mensajes puedan llegar al destino bajo demanda y cumplir con los requisitos de transmisión de redes inestables:

"Como máximo una vez", mensaje La publicación depende completamente de la red TCP/IP subyacente. Pueden aparecer mensajes faltantes o duplicados. Este nivel se puede utilizar en las siguientes situaciones. No importa si los datos del sensor ambiental se pierden una vez, porque pronto habrá una segunda transmisión.

"Al menos una vez" para garantizar la llegada del mensaje, pero puede producirse duplicación de mensajes.

"Sólo una vez" garantiza que el mensaje llegue una vez. Este nivel se puede utilizar cuando mensajes duplicados o faltantes darán lugar a resultados erróneos en el sistema de facturación.