por Ponlakshmi
MQTTlos mensajes no se envían directamente desde uno algo a otro. Más bien, se les asigna a "temas MQTT". ElMQTT brokerentonces distribuye los mensajes a cualquier cliente que se haya suscrito a ellos. El tema del término en protocolo se refiere a unUTF-8 stringutilizado por el broker para filtrar mensajes para cada cliente suscrito. Cuando alguien se suscribe a un tema y luego publica un mensaje a ese tema con el mensaje retenido establecido a Verdadero, los temas son establecido. Cuando el último suscriptor a ese corredor se desconecta, se establece una sesión limpia.Limpio período de sesioneses establecido a Verdad cuando un El cliente MQTT se conecta.
Sensor/water_level/water_status– sensores, nivel de agua/agua_status son niveles de tema.
Salta delantera ( / )– un separador de nivel de tema.
El tema se compone de uno o más niveles de tema. Un enfrentamiento adelante separa cada nivel de tema (nivel temático) separador). El corredor no requiere que ese tema sea pre-registrado.
Los temas de MQTT son muy ligeros en comparación con una cola de mensajes. Antes de publicar o suscribirse a un tema, el cliente no necesita crear temas. Sin ninguna inicialización previa, el corredor acepta cualquier valido Tema.
Estos son algunos ejemplos para ver:
Un vistazo a MQTT Temas utilizados enBevywise Broker.
Excepto por la longitud de una cadena codificada UTF-8, no hay restricción al número de niveles en una Nombre del tema o filtro del tema. Nombres del tema y filtros del tema están sujetos a las siguientes pautas:
El Filtro Tema de una suscripciónpuede contener caracteres comodines especiales que le permiten suscribirse a varios temas a la vez. El caracteres salvajes pueden ser utilizado en Filtros Tópicos pero no en Nombres Tópicos. Los Wildcards se clasifican en dos tipos:
Cuando uno de los dos caracteres comodines se encuentra en Filtros Temas dados por suscribir Clientes, los uso del nivel de tema El separador es significativo. Los separadores para niveles de tema pueden existir en cualquier lugar de un Filtro Tema o un Tema Nombre. Un tema de longitud cero nivel es indicado por separadores de nivel de tema adyacente.
Un personaje salvaje de un solo nivel en un tema está representado por el símbolo más “+”. El Filtro Tema Wildcard de un solo nivel puede ser utilizado en cualquier nivel, incluyendo el primero y el último. Debe llenar todo el nivel del filtro dondequiera que sea se utiliza. Puede ser utilizado en el Filtro Tema a múltiples niveles y en conjunto con el comodín multinivel.
Por ejemplo,
Cualquier tema como “tank/water_level/+” coincide “tank/water_level/flow_rate1” y “tank/water_level/flow_rate2”, pero no “tank/water_level/flow_rate1/increase”. Además, porque el comodín de un solo nivel coincide con un nivel, “tank/+” no "tank", pero "tank/" sí.
El carácter de comodín “#” es un comodín multinivel que se puede utilizar para combinar cualquier número de niveles dentro de un tema. The parent and any number of child levels are represented by the multi-level wildcard. The multi-level carácter salvaje debe ser dado solo o después de un separador de nivel de tema. Debe ser el último carácter suministrado en el Filtro temático en o escenario.
Por ejemplo,
Si un Cliente se suscribe a “tank/water_level/flow_rate1/#”, por ejemplo, recibirá mensajes publicados en virtud de siguientes nombres de temas:
Temas que comienzan con un portón sign ($)son temas reservados. Los temas de $-símbolo son para las estadísticas internas del corredor. Filtros temáticos que empezar con un comodín carácter (# o +) no debe ser igualado con Nombres Tópicos que comienzan con un carácter $. Los clientes no deben se puede enviar mensajes a otros Clientes con tales Nombres Tema, según el Servidor. Tema Nombres que comienzan con un líder $ carácter puede ser utilizado para propósitos adicionales por implementaciones del servidor. $SYS/ se ha convertido en un prefijo prominente para temas que contiene servidor específico data o control APIs. Un tema que contiene un personaje de $ líder no puede ser utilizado por las aplicaciones para su por razones propias.
Toda la información siguiente se almacena generalmente en $SYS/, sin embargo las implementaciones de los corredores difieren. A continuación se presentan algunos casos.
Lo anterior son los fundamentos de los temas del mensaje. MQTT temas, como se puede ver, son dinámicos y ofrecen un montón de flexibilidad. Siga utilizando su extensibilidad sin cambiar toda la jerarquía de temas para la posterior inclusión de nuevos sensores por añadir estos a tu árbol de temas.
Para obtener más información sobre el protocolo,