Mostrando y limpiando mensajes no confirmados pendientes de entrega MQTT


#1

Índice

1. Introducción

Dentro del estándar MQTT, los mensajes no confirmados son los siguientes:

  • Mensajes Qos1 y Qos2 que están en tránsito y que no han recibido todavía confirmación (PUBACK, PUBCOMP). Esto es, mensajes QoS1 y Qos2 que están en proceso de ser entregados. Los mensajes son borrados una vez es recibida la confirmación del par remoto.

  • Mensajes Qos1 y Qos2 que están pendientes de ser entregados para dispositivos desconectados que se subscribieron a topics que encajan. Esto es, un dispositivo que se conecta con cleanSession=false y que se subscribe con QoS1 o QoS2 y luego se desconecta, hará que los mensajes que encajen con estas subscripciones sean retenidos pendientes de ser entregados la próxima vez que el dispositivo se conecte.

Debido a que los mensajes QoS0 no tienen confirmación, no tienen reintento/reentrega y por tanto nunca son almacenados como mensajes no confirmados pendientes de ser entregados.

2. Qué pasa si la confirmación no es recibida

En este caso, dichos mensajes será retenidos y su entrega será intentada la próxima vez que el dispositivo se conecte de nuevo.

3. Cómo se relaciona los mensajes no confirmados con el skip connection replace

Debido a que los dispositivos conectando con “la opción skip connection replace” crearán un ClientId virtual temporal, no es posible para el mismo dispositivo reconectar y recibir dichos mensajes la próxima vez (debido a que el clienteId es temporal).

Debido a esto, si activa la opción Skip Connection Replace, ningún mensaje pendiente de confirmación será almacenado.

4. Cómo revisar los mensajes no confirmados

Puede comprobar los mensajes pendientes de ser entregados a su dominio con:

  1. Vaya a la gestión de su dominio:

  2. Luego pinche en mensajes no confirmados:

También puede comprobar los mensajes no confirmados para un dispositivo en concreto pinchando con los siguientes pasos:

  1. Seleccione un dispositivo:

  2. Ahora pinche en los mensajes no confirmados:

5. Cómo borrar los mensajes no confirmados para un dispositivo o un dominio completo

  1. Use la opción proporcionada para borrar mensajes no confirmados pendientes para un dispositivo en particular:

  2. La misma opción está disponible a nivel de dominio: