TsgcWSPClient_MQTT | Tópicos MQTT

Temas

En MQTT, la palabra tópico hace referencia a una cadena UTF-8 que el broker utiliza para filtrar mensajes para cada cliente conectado. El tópico consta de uno o más niveles de tópico. Cada nivel de tópico está separado por una barra diagonal (separador de nivel de tópico)

 

myHome / groundfloor / livingroom / temperature

 

En comparación con una cola de mensajes, los temas MQTT son muy ligeros. El cliente no necesita crear el tema deseado antes de publicar o suscribirse a él. El broker acepta cada tema válido sin ninguna inicialización previa. Tenga en cuenta que cada tema debe contener al menos 1 carácter y que la cadena del tema permite espacios en blanco. Los temas distinguen entre mayúsculas y minúsculas.

 

 

WildCards

Cuando un cliente se suscribe a un topic, puede suscribirse al topic exacto de un mensaje publicado o puede utilizar comodines para suscribirse a múltiples topics simultáneamente. Un comodín solo puede usarse para suscribirse a topics, no para publicar un mensaje. Existen dos tipos distintos de comodines: _single-level y _multi-level.

 

Nivel único: +

Como su nombre indica, un comodín de nivel único reemplaza un nivel de tópico. El símbolo más representa un comodín de nivel único en un tópico.

 

myHome / groundfloor / + / temperature

 

Cualquier tema coincide con un tema con un comodín de un único nivel si contiene una cadena arbitraria en lugar del comodín. Por ejemplo, una suscripción a _myhome/groundfloor/+/temperature puede producir los siguientes resultados:

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

NO => myHome / groundfloor / livingroom / brightness

NO => myHome / firstfloor / livingroom / temperature

NO => myHome / groundfloor / kitchen / fridge / temperature

 

Multinivel: #

El comodín multinivel abarca muchos niveles de tema. El símbolo de almohadilla representa el comodín multinivel en el tema. Para que el broker determine qué temas coinciden, el comodín multinivel debe colocarse como el último carácter del tema y estar precedido por una barra inclinada hacia adelante.

 

myHome / groundfloor / #

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

YES => myHome / groundfloor / kitchen / brightness

NO => myHome / firstfloor / kitchen / temperature

 

Cuando un cliente se suscribe a un tema con un comodín multinivel, recibe todos los mensajes de un tema que comience con el patrón anterior al carácter comodín, independientemente de la longitud o profundidad del tema. Si especifica solo el comodín multinivel como tema (_#), recibirá todos los mensajes que se envíen al broker MQTT.