Este tema describe la función de caducidad de sesión de MQTT 5.0.
Contexto
Una sesión especifica información sobre una conexión establecida entre un dispositivo e IoT Platform, y se almacena en IoT Platform. Esta información incluye la relación de suscripción, el estado del dispositivo y los mensajes almacenados en caché.
-
En MQTT 3.1.1, el parámetro
cleanSessiondefine la configuración de la sesión.cleanSession = true: La sesión se elimina al establecerse una conexión. El dispositivo debe volver a suscribirse a un tema y no recibe los mensajes QoS 1 almacenados en IoT Platform de manera híbrida.cleanSession = false: La sesión se conserva al establecerse una conexión. El dispositivo no necesita volver a suscribirse a un tema y recibe los mensajes QoS 1 almacenados en IoT Platform de manera híbrida.
En MQTT 5.0, el parámetro
cleanSessionpasa a llamarsecleanStarty se agrega la propiedadSession Expiry Interval. Una sesión puede eliminarse, conservarse o caducar. Configure la propiedad Session Expiry Interval para gestionar las sesiones con flexibilidad. Si ya no utiliza las sesiones, elimínelas para reducir el consumo de recursos de IoT Platform. Esto también ayuda a cumplir con los requisitos de los dispositivos, como evitar la recepción de mensajes inesperados. Según la combinación de valores de la propiedadSession Expiry Intervaly el parámetrocleanStart, pueden ocurrir los casos a continuación:
Si no configura la propiedad Session Expiry Interval, se utiliza el valor predeterminado 0.
Si establece la propiedad Session Expiry Interval en 0xFFFFFFFF, la sesión no caduca.
Escenarios
Dispositivos con desconexiones frecuentes
Si elimina sesiones con mucha frecuencia en dispositivos que se mueven continuamente, como vehículos, estos deberán suscribirse a un tema repetidamente. El caso 3 de la figura anterior es adecuado para este escenario. Si un dispositivo se reconecta dentro de un periodo específico, reutilice la sesión. Si el dispositivo no puede conectarse durante un periodo prolongado, elimine la sesión. De esta forma, el dispositivo no recibirá mensajes caducados.
Dispositivos que no pueden perder mensajes
Si utiliza dispositivos financieros, como terminales POS y altavoces de difusión, estos tienen requisitos estrictos respecto a la tasa de entrega de mensajes. El caso 4 de la figura anterior es apropiado para este escenario.
La sesión permanece en estado activo desde su inicio hasta su finalización. El dispositivo correspondiente conserva la relación de suscripción y los mensajes.
Dispositivos independientes del estado
Si utiliza dispositivos como pantallas publicitarias, estos reproducen contenido nuevo de forma continua y no necesitan recibir mensajes caducados. El caso 1 de la figura anterior es ideal para este escenario.
Al eliminar las sesiones, los dispositivos dejan de recibir contenido caducado. Esto contribuye a reducir el consumo de recursos de IoT Platform.