Protocolos / serialização binária

Matcher de tópicos MQTTcom explicação por tópico

Digite um filtro de assinatura e um tópico publicado por linha; escolha a versão e a situação de entrega.

Matcher de tópicos MQTT

Filtro da assinatura

Tópicos publicados

Resultado por linha

Filtro e tópicos ficam neste navegador. Nenhuma conexão com broker é feita.

Protocolo e entrega

+ ocupa um nível inteiro; # apenas o último nível inteiro. Um tópico publicado não pode ter curingas.

Um filtro e até 1.000 linhas. Só linhas vazias são ignoradas; espaços e níveis vazios são mantidos.

Digite um filtro e alguns tópicos para começar.

Quando o dispositivo publica mas o assinante não vê a mensagem, o Matcher de tópicos MQTT aponta diferença de nível, maiúsculas, barra inicial ou tópico de sistema iniciado por $. Os nomes são comparados sem retirar espaços.

Teste vários nomes de uma vez e separe a correspondência do filtro da entrega inicial de uma mensagem já retida. Em uma assinatura compartilhada MQTT 5, o filtro pode combinar sem que o novo membro receba a mensagem antiga.

Por que usar o Matcher de tópicos MQTT?

Combinar com o filtro e receber a mensagem são respostas diferentes.

Enxergar o alcance dos curingas

O Matcher de tópicos MQTT mostra que + cobre um único nível e que # no fim também inclui o tópico pai. Níveis vazios e tópicos de sistema com $ continuam visíveis e sem normalização.

Árvore de tópicos em que uma rota cobre só um nível e outra alcança o pai e seus descendentes

Separar correspondência e retenção

Um tópico armazenado pode combinar com filtros comuns e compartilhados no MQTT 5. Mesmo assim, um novo membro da assinatura compartilhada não recebe a cópia retida antiga.

Duas assinaturas combinam com um tópico guardado, mas apenas a comum recebe a mensagem retida anterior

Três verificações antes de assinar

01

Preservar cada caractere

Cole os tópicos realmente publicados, um por linha. Maiúsculas, espaços, barras iniciais e níveis vazios fazem diferença; só linhas totalmente vazias são ignoradas.

  • O exemplo de curingas mostra como + alcança o nível vazio em sensors//temperature.
02

Escolher versão e momento

MQTT 5 reconhece $share/grupo/filtro como assinatura compartilhada; 3.1.1 não define esse padrão. O modo retido pergunta apenas sobre a primeira entrega ao novo assinante.

  • O exemplo compartilhado ativa MQTT 5 e a situação de mensagem retida.
03

Ler a primeira diferença

Uma linha sem combinação mostra o primeiro nível divergente. Na retenção compartilhada, a regra pode combinar sem entrega inicial. Ao mudar a entrada, copiar e baixar o relatório antigo ficam desativados.

  • Desligue o teste automático para executar com Ctrl/Cmd+Enter.

O filtro explicado linha a linha

Curingas por nível

Tópicos curingas usam + para exatamente um nível e # somente no final, incluindo o pai. Os caracteres * e ? de glob não ganham significado especial.

Um filtro, muitos tópicos

Compare até 1.000 nomes publicados com um filtro de tópico. O relatório mantém o número da linha original e separa nomes inválidos de simples falhas de correspondência de tópicos.

Assinatura compartilhada por versão

No MQTT 5, $share/grupo/ sai antes da comparação. Em 3.1.1 o prefixo é literal; extensões do broker e a escolha do membro receptor não são simuladas.

Limites desta previsão local

Nome publicado não é padrão glob
+ e # são válidos apenas em níveis inteiros do filtro; # precisa ser o último. Um nome publicado com qualquer um deles é inválido, e curinga inicial não captura $SYS.
Compartilhamento padrão requer MQTT 5
Em 3.1.1, $share é comparado como níveis literais. Alguns brokers oferecem extensões próprias, mas esta página não afirma reproduzi-las.
Modo retido trata a primeira entrega
Cada linha representa um tópico que já tem mensagem retida. Para assinatura comum MQTT 5, presume-se Retain Handling 0; QoS, sessões, exclusões e publicações futuras ficam fora.
Sem autorização do broker
O Matcher de tópicos MQTT não se conecta nem verifica ACL ou entrega real. Uma regra local combinando não prova que a assinatura foi aceita.

Dúvidas sobre o Matcher de tópicos MQTT

Qual é a diferença entre os curingas + e # no MQTT?

+ ocupa exatamente um nível, inclusive vazio. # só pode ser o último nível inteiro e alcança o tópico pai e qualquer quantidade de níveis abaixo.

O caractere # precisa ser o último do filtro de tópicos?

Sim. Ele deve ocupar sozinho o último nível ou ser o filtro todo. Um filtro como sensor/#/temp é rejeitado com a coluna do erro.

Por que Topic_1 não corresponde a topic_1?

Os nomes de tópicos MQTT diferenciam maiúsculas de minúsculas. Esta ferramenta não muda a caixa nem normaliza Unicode antes de comparar.

Posso publicar em um tópico com curinga?

Não. + e # são reservados a filtros de assinatura. Uma linha de nome publicado que contenha esses caracteres é marcada como inválida.

Por que o filtro de tópicos não mostra as mensagens esperadas?

Veja o primeiro nível divergente ou a regra especial de $. Mesmo com combinação, ACL, conexão e estado do broker podem impedir entrega; este teste não os verifica.

Ainda tem dúvida sobre a combinação?

Usar o Matcher de tópicos MQTT

Volte ao Matcher de tópicos MQTT com o filtro e a lista reais; escolha o modo retido apenas para verificar a primeira entrega de mensagens já armazenadas.

Tudo é calculado no seu navegador.