Protocolos / serialización binaria

Comparador de topics MQTTcon explicación por línea

Escribe un filtro de suscripción y un topic publicado por línea; elige versión y escenario de entrega.

Comparador de topics MQTT

Filtro de suscripción

Topics publicados

Resultados por línea

El filtro y los topics se procesan en este navegador. No se establece conexión con un broker.

Protocolo y entrega

+ ocupa un nivel completo; # solo el último nivel completo. Un topic publicado no puede contener comodines.

Un filtro y hasta 1.000 líneas. Se omiten solo las líneas vacías; se conservan espacios y niveles vacíos.

Introduce un filtro y algunos topics.

Cuando un dispositivo publica pero la suscripción no recibe nada, el Comparador de topics MQTT señala diferencias de nivel, mayúsculas, barras y topics que empiezan por $. No modifica los nombres antes de compararlos.

Prueba varios nombres juntos y separa la coincidencia del filtro de la entrega inicial de un mensaje ya retenido. En MQTT 5 una suscripción compartida puede coincidir con el topic sin recibir ese mensaje antiguo al incorporarse.

Por qué usar el Comparador de topics MQTT

Coincidir con el filtro y recibir un mensaje son decisiones distintas.

Ver el alcance exacto de cada comodín

El Comparador de topics MQTT muestra que + ocupa un nivel completo y que # al final abarca incluso el nivel padre. Conserva los niveles vacíos y la excepción de los topics del sistema.

Árbol de topics donde una ruta abarca un nivel y otra incluye el padre y los niveles descendientes

Separar coincidencia y retenido

Un topic guardado puede coincidir con un filtro normal y con otro compartido en MQTT 5. El nuevo miembro del grupo no recibe la copia retenida anterior; el resultado muestra ambas respuestas.

Dos filtros coinciden con un topic guardado, pero solo la suscripción normal recibe el mensaje anterior

Tres comprobaciones antes de suscribirse

01

Conservar el nombre publicado

Pega un topic real por línea. Las mayúsculas, los espacios y las barras iniciales o duplicadas forman parte del nombre; solo se omiten las líneas de longitud cero.

  • El ejemplo de comodines enseña cómo + coincide con un nivel vacío.
02

Elegir versión y momento

MQTT 5 interpreta $share/grupo/filtro como suscripción compartida; MQTT 3.1.1 no la define. El escenario retenido pregunta solo por la primera entrega de mensajes ya guardados a un nuevo suscriptor.

  • El ejemplo compartido selecciona MQTT 5 y el escenario retenido a la vez.
03

Leer el primer nivel distinto

La fila sin coincidencia indica el primer nivel que falla. Una fila retenida compartida puede indicar filtro coincidente sin entrega inicial. Al cambiar entrada u opciones se bloquea la exportación anterior.

  • Con la prueba automática desactivada, Ctrl/Cmd+Intro ejecuta la comparación.

Qué revela cada comparación

Comodines por niveles

Los comodines MQTT + y # no son glob: + sustituye un nivel entero y # solo el último, incluido su padre. * y ? no se vuelven operadores especiales. Esta validación de topics evita confundir una ruta de MQTT con una expresión regular.

Un filtro, hasta mil nombres

Compara un filtro de topic con hasta 1.000 topics publicados. Mantiene la línea original y distingue nombres inválidos de nombres válidos que simplemente no coinciden.

Suscripción compartida según la versión

En MQTT 5 se quita $share/grupo/ antes de comparar. En 3.1.1 se lee literalmente, sin inventar extensiones del broker ni asignar un miembro receptor.

Límites de una predicción local

Un nombre publicado no es un patrón
Los caracteres + y # solo actúan en filtros de temas, ocupando niveles completos; # debe ser final. En un nombre publicado son inválidos, y un comodín inicial no captura $SYS.
El estándar compartido exige MQTT 5
MQTT 3.1.1 trata $share como niveles literales. Algunos brokers ofrecen extensiones, pero aquí no se afirma cómo funcionan sin conectarse a ellos.
Retenido significa primera entrega
Cada fila representa un topic con un mensaje retenido anterior. Para MQTT 5 normal se supone Retain Handling 0; no se simulan QoS, sesiones, borrados ni futuras publicaciones.
No comprueba permisos del broker
El Comparador de topics MQTT no conecta, publica ni consulta ACL. Una coincidencia local no demuestra que un broker haya aceptado la suscripción o entregado el mensaje.

Preguntas del Comparador de topics MQTT

¿Por qué un filtro de topic no coincide con el topic publicado?

Mira el primer nivel señalado, la diferencia de mayúsculas y la excepción de los nombres que comienzan por $. La comparación no elimina barras ni espacios.

¿Qué diferencia hay entre los comodines + y # de MQTT?

+ cubre exactamente un nivel entero, incluso vacío. # solo puede ocupar el último nivel y cubre al padre y a cualquier cantidad de niveles posteriores.

¿Puede # aparecer en medio de un filtro de temas?

No. # debe ser el último nivel completo o ser el filtro entero. Un patrón como sensor/#/temp se rechaza indicando la columna.

¿Se pueden usar comodines al publicar un topic?

No. + y # están permitidos en los filtros de suscripción, no en los nombres publicados. Este comprobador marca esas filas como inválidas.

¿Por qué no aparecen mensajes tras suscribirme al filtro?

El filtro puede no coincidir; revisa las razones por línea. Aunque coincida, los permisos, la conexión y el estado del broker también influyen y esta página no los verifica.

¿Sigue sin quedar clara una coincidencia?

Usar el Comparador de topics MQTT

Vuelve al Comparador de topics MQTT con el filtro y la lista reales; activa retenidos solo al estudiar la primera entrega de mensajes ya guardados.

La comparación se realiza en tu navegador.