Los mensajes retenidos garantizan que los nuevos suscriptores de un tema reciban el último mensaje de estado, incluso si se publicó antes de su suscripción. Cuando el servidor publica un mensaje con la marca de retención en un tema, IoT Platform guarda el mensaje y lo entrega a los suscriptores actuales. Los dispositivos que posteriormente se suscriban al tema también reciben el mensaje retenido. Los mensajes retenidos se definen en el estándar MQTT 3.1.1. Alibaba Cloud IoT Platform admite esta función para conexiones MQTT 5.0.
Mensajes retenidos
-
Actualice un mensaje retenido:
Publicar un nuevo mensaje en el mismo tema sobrescribe la carga útil del mensaje retenido existente.
La marca de retención permite publicar mensajes en un lote de dispositivos, sin importar su estado de conexión.
-
Elimine un mensaje retenido:
Publicar un mensaje con una carga útil vacía en el mismo tema elimina el mensaje retenido.
Un mensaje retenido se elimina cuando transcurre su intervalo de message expiration. Esta función resulta útil para mensajes que pierden validez tras un periodo determinado, como los datos de control de temperatura. Para usarla, establezca el atributo de caducidad del mensaje.
La caducidad de la sesión no afecta a los mensajes retenidos; estos persisten aunque la sesión haya expirado.
Escenarios
Los mensajes retenidos son ideales para configurar dispositivos sin conexión. Por ejemplo, una pantalla publicitaria entra en hibernación por la noche para ahorrar energía y se enciende durante el día; su contenido se actualiza diariamente. Enviar las actualizaciones desde el servidor es más eficiente que hacer que el dispositivo consulte cambios de forma periódica. Sin embargo, si el servidor envía una actualización mientras el dispositivo está desconectado, el mensaje no puede entregarse. Los mensajes retenidos resuelven este problema al garantizar que el dispositivo reciba el último mensaje la próxima vez que se conecte.