HomeBlog MQTT Mantener la capacidad de adquisición de clientes

¿Qué tan vital es MQTT Mantener la capacidad de adquisición del cliente?

por Ponlakshmi


mqtt keep alive

¿Sabes lo que sigue vivoMQTTes y ¿Qué hace? Aprenderemos acerca de la implementación continua del MQTT y por qué es esencial en este blog. La característica de mantener viva, como su nombre sugiere, se utiliza para mantener una conexión de red viva. Este término no es usado en MQTT; también se utiliza en una variedad de otros protocolos. Mantener vivo asegura que la conexión entre un servidor y un cliente se queda disponibles y que ambos usuarios son conscientes de que están conectados. Garantizando sólo una conexión se utiliza por cliente, la congestión de la red y la latencia se reducen. Esto es especialmente útil en las interacciones entre máquinas y máquinas, porque los nodos tienen recursos muy limitados. Es por eso que la función Keep Alive es necesariaMQTT Brokerconexión cliente " comunicación.

Mantener el contacto en MQTT

Ya sabemos que MQTT está construido sobreModelo TCP/IP, que asegura que los paquetes se intercambian en un confiable, ordenado y Sin errores. De hecho, la capa de transporte de MQTT empleaProtocolo de Protocolo Control de Transmisiones, que Incluye su propio Keep Alive capacidad. Entonces podría preguntarse por qué hay un requisito para un mantenimiento adicional vivo Aplicación de la Aplicación capa. Incluso con el TCP se mantiene la implementación viva, en aplicaciones reales, especialmente en el caso de dispositivos IoT con tan muchas limitaciones en la red, la transferencia entre clientes comunicantes puede salir de sincronía debido a clientes chocando, redes poco fiables u otros problemas. Además, como el MQTT es decodificado por clientes, si una conexión es solamente medio abierto, el lado que todavía está conectado continúa transmitiendo mensajes y espera reconocimientos.

Cómo MQTT Mantener las obras de Alive

Cuando el cliente se conecta al corredor, el cliente envía al corredor un intervalo de tiempo vivo en segundos. Este intervalo especifica la cantidad máxima de tiempo que el corredor y el cliente pueden ser incapaces de comunicarse uno con otro. No es necesario enviar un mensaje extra para comprobar si la conexión sigue abierta como mientras Los mensajes se envían dentro del período de mantenimiento. Si el cliente no envía un mensaje durante el período de mantenimiento, el corredor debe enviar unping paquete de solicitudpara indicar que aún es accesible. El corredor responderá al cliente con unarespuesta Paquete, y la conexión se mantendrá. El temporizador vivo se reinicia cuando las respuestas del ping son recibidos, y el ciclo se reinicia. Un cliente que no envía un mensaje o un paquete de solicitud de ping en uno y medio tiempos el intervalo de mantener vivo será desconectado por el corredor. Si el cliente no consigue un ping paquete de respuesta de el corredor, se espera que la conexión esté cerrada. Si el cliente ha establecido unÚltima Voluntad y TestamentoMensaje, el El mensaje LWT será enviado a todos los clientes suscritos durante esta desconexión.

Ejemplo

Aquí está un simple ejemplo de cómo la característica de MQTT mantiene viva ayuda a mantener la comunicación de la red funcionando suavemente. Cuando se cumplen circunstancias particulares, posiblemente relacionadas con la temperatura, un sensor conectado al red se espera que envíe un mensaje. La condición exacta que hace que el mensaje sea enviado no puede ser medida, y puede sucede en cualquier momento. Este sensor es beneficioso para garantizar la seguridad de la red automatizada procesos. Ajuste el mantener vivo intervalo a una baja estimación asegura que el corredor siempre está informado del estado del conexión del cliente. Se enviará un mensaje basado en condiciones, o un flujo constante deMensajes PINGREQverificará que el cliente está conectado. Si intervalo de tiempo se supera, el corredor terminará la conexión y enviará la última voluntad y testamento Mensaje. Esto debería contiene advertencias o alarmas en el caso de un componente de red esencial como este sensor, de modo que medidas preventivas hecho.

Cliente Take-Over

Los clientes que hayan perdido contacto con su corredor intentarán, en la mayoría de los casos, reconectarse. MQTT permite el corredor para hacer un cliente toma de posesión, lo que permite al corredor cancelar una conexión media abierta y permitir al mismo cliente establecer un nuevo Conexión. Es un seguro de falla para evitar que los dispositivos se desconecten de la red debido a lo que sea condición activada conexión media abierta. Permitir a los corredores participar en las tomas de clientes puede ser esencial para mantener los comunicación en un Red MQTT. La toma asegura que la capacidad del cliente para restaurar la comunicación con el corredor es no afectados por el dificultad que resultó en una conexión media abierta. Elimina un punto potencial de fracaso en el red cuando los clientes son incapaces de terminar las conexiones por su cuenta.


Otra razón para decir MQTT es una gran soluciónpara las redes distribuidas y la comunicación entre dispositivos es su Mantenga la característica viva. Puede diseñar una solución de red robusta que pueda soportar casos inestables conectividad con suficiente configuración.

Para obtener más información sobre el protocolo,