IoT Platform admite las opciones de suscripción de MQTT 5.0, que permiten controlar el comportamiento de entrega de mensajes, incluidos los niveles de QoS, la supresión de eco local, el manejo de la bandera Retain y la entrega de mensajes retenidos.
Descripción de la función
Configure las opciones de suscripción para controlar cómo IoT Platform gestiona la entrega de mensajes. MQTT 5.0 admite las siguientes opciones:
|
Elemento |
Descripción |
|
Nivel de calidad de servicio (QoS) para la mensajería MQTT. Los niveles de QoS en MQTT 5.0 son los mismos que en MQTT 3.1. |
|
|
Especifique si un dispositivo recibe los mensajes que publica. |
|
|
Especifique si IoT Platform conserva la bandera Retain al reenviar un mensaje a un dispositivo. |
|
|
Especifique si el servidor envía mensajes retenidos a un dispositivo cuando se establece una suscripción. |
Si usa Link SDK for C para conectar dispositivos con IoT Platform, todas las opciones de suscripción se establecen en 0 de forma predeterminada.
Se recomienda establecer la opción No Local en 1 para reducir la entrega innecesaria de mensajes.
Nivel de QoS
MQTT 5.0 define tres niveles de QoS.
|
Nivel |
Descripción |
Escenario |
|
QoS 0 |
El mensaje se entrega como máximo una vez. La entrega no está garantizada y el mensaje puede perderse. |
Adecuado para transmitir datos de sensores. |
|
QoS 1 |
El mensaje se entrega como mínimo una vez. La entrega está garantizada. |
Adecuado para transmitir comandos de control remoto. |
|
QoS 2 |
El mensaje se entrega exactamente una vez. Nota
IoT Platform no admite este nivel de QoS. |
N/A |
No Local
En MQTT 3.1.1, un dispositivo suscrito a un tema en el que también publica recibe sus propios mensajes. En MQTT 5.0, establezca la opción No Local en 1 para evitar que el dispositivo reciba los mensajes que publicó.
Valores válidos:
1: El dispositivo no recibe los mensajes que publicó.
0: El dispositivo recibe los mensajes que publicó.
Para suscripciones a temas con comodines, establezca esta opción en 1 para simplificar las suscripciones y reducir los mensajes innecesarios. La siguiente imagen muestra el proceso de mensajería cuando No Local se establece en 1.

Retain As Publish
Cuando IoT Platform reenvía un mensaje a un dispositivo, especifique si se conserva la bandera Retain en dicho mensaje.
Al configurar la suscripción de un dispositivo, establezca la opción Retain As Publish en uno de los siguientes valores:
1: IoT Platform conserva la bandera Retain en los mensajes normales reenviados y en los mensajes retenidos que publica como broker.
0: IoT Platform elimina la bandera Retain de los mensajes normales reenviados. Para los mensajes retenidos que IoT Platform publica como broker, se conserva la bandera Retain.
La siguiente tabla muestra cómo la opción Retain As Publish afecta la bandera Retain en los mensajes que recibe un dispositivo. El estado de la bandera Retain del mensaje publicado en IoT Platform puede ser:
True: El mensaje publicado contiene la bandera Retain. La opción Retain As Publish determina si el dispositivo recibe dicha bandera.
False: El mensaje publicado no contiene la bandera Retain. La opción Retain As Publish no tiene efecto y el dispositivo nunca recibe la bandera Retain.
|
Si el mensaje publicado en IoT Platform contiene la bandera Retain |
Si la suscripción está establecida cuando se publica el mensaje en IoT Platform |
Opción Retain As Publish |
Si el mensaje recibido por el dispositivo contiene la bandera Retain |
|
True |
La suscripción está establecida e IoT Platform publica el mensaje inmediatamente. |
1 |
True |
|
0 |
False |
||
|
La suscripción no está establecida; IoT Platform publica el mensaje retenido solo después de que se establece una suscripción. |
1 |
True |
|
|
0 |
True |
||
|
False |
El estado de la suscripción no influye. |
Cualquier valor |
False |
Un dispositivo recibe un mensaje con la bandera Retain cuando se cumple una de las siguientes condiciones:
El mensaje publicado contiene la bandera Retain y Retain As Publish está establecido en 1.
IoT Platform publica un mensaje retenido como broker y Retain As Publish está establecido en 0.
Retain Handling
La opción Retain Handling controla si el servidor entrega mensajes retenidos a un dispositivo después de establecer una suscripción.
Valores válidos:
0: El servidor entrega mensajes retenidos al dispositivo cada vez que este se suscribe a un tema.
1: El servidor entrega mensajes retenidos solo en la primera suscripción a un tema. Si un dispositivo se vuelve a suscribir al mismo tema dentro de una sesión, no se reenvían los mensajes retenidos.
2: El servidor no entrega mensajes retenidos, sin importar el estado de la suscripción.