Gerador de Client ID MQTT

Gere até 100 Client IDs MQTT únicos de uma vez — aleatórios, UUID, hex ou baseados em timestamp, com seu próprio prefixo. Ative o modo estrito para obter IDs que todo broker MQTT 3.1.1 é obrigado a aceitar.

Escolha as opções e clique em “Gerar Client IDs”.

Os IDs são gerados no seu navegador com a Web Crypto API e nunca são enviados a lugar nenhum.

Para que serve o Client ID do MQTT

Todo cliente MQTT envia um identificador de cliente no pacote CONNECT. O broker o usa para reconhecer o cliente entre reconexões: é a chave sob a qual o broker guarda a sessão — assinaturas, mensagens QoS 1 e QoS 2 na fila e confirmações pendentes. Se um dispositivo reconecta com o mesmo ID e sessão persistente, ele continua exatamente de onde parou. Se reconecta com outro ID, o broker o trata como um cliente totalmente novo e a sessão antiga fica lá até expirar.

Regra 1: Client IDs precisam ser únicos

Um broker permite só uma conexão por Client ID. Quando chega uma segunda conexão com um ID que já está conectado, o broker fecha a primeira — no MQTT 5 com o reason code 0x8E Session taken over. É a causa mais comum de relatos de “meu cliente fica desconectando”: dois dispositivos gravados com a mesma constante no firmware, um app web aberto em duas abas ou um serviço escalado para duas réplicas. Os dois clientes reconectam, derrubam um ao outro e o ciclo se repete a cada poucos segundos. Veja erros de conexão MQTT para mais sintomas.

Bons Client IDs são estáveis para cada dispositivo (para que sessões persistentes funcionem) e únicos em toda a frota. Um padrão comum é um prefixo legível mais algo específico do dispositivo: número de série, endereço MAC ou um valor aleatório gerado uma vez e salvo na flash. Clientes de navegador e de vida curta normalmente usam um ID aleatório novo a cada conexão.

Regra 2: a garantia de 23 caracteres

A especificação MQTT 3.1.1 diz que um broker deve aceitar Client IDs de 1 a 23 bytes contendo apenas 0-9, a-z e A-Z, e pode aceitar qualquer outra coisa. A maioria dos brokers modernos aceita IDs bem mais longos com hífens, sublinhados e dois-pontos, mas alguns brokers embarcados ou antigos os rejeitam com o return code 2 (identifier rejected) ou 0x85 Client Identifier not valid. Se você não controla com qual broker seus dispositivos vão falar, ative o modo estrito acima. As diferenças entre as versões do protocolo estão em MQTT 5 vs 3.1.1.

Client IDs vazios

Um cliente pode enviar um Client ID de tamanho zero e deixar o broker escolher um, mas só junto com clean session (3.1.1) ou clean start (5.0), porque não existe uma chave estável para guardar a sessão. Brokers MQTT 5 devolvem o ID gerado na propriedade Assigned Client Identifier. Alguns brokers desativam esse recurso, então gerar seu próprio ID é a opção portável.

Pronto para testar? Cole um ID gerado no cliente MQTT online e conecte em um broker público, ou abra uma segunda aba com o mesmo ID para ver um session takeover ao vivo.

Perguntas frequentes sobre Client ID

Qual o tamanho máximo de um Client ID MQTT?

O MQTT 3.1.1 exige que os brokers aceitem Client IDs de 1 a 23 bytes UTF-8 usando apenas 0-9, a-z e A-Z, e permite que aceitem mais. O MQTT 5 mantém a mesma garantia. Na prática, Mosquitto, EMQX, HiveMQ e a maioria dos brokers em nuvem aceitam IDs de até 65.535 bytes com qualquer caractere.

O que acontece se dois clientes usarem o mesmo Client ID?

O broker derruba a conexão existente e aceita a nova (um session takeover; reason code 0x8E no MQTT 5). Se os dois clientes reconectam automaticamente, um fica derrubando o outro e ambos parecem estar desconectando o tempo todo.

Posso usar um Client ID vazio?

Sim, se você pedir clean session (MQTT 3.1.1) ou clean start (MQTT 5). O broker então atribui um ID único; o MQTT 5 o devolve na propriedade Assigned Client Identifier. No MQTT 3.1.1 um ID vazio não pode ser combinado com sessão persistente.

O Client ID precisa ser secreto?

Não. Client IDs são identificadores, não credenciais — aparecem nos logs do broker e são fáceis de adivinhar. Sempre autentique com usuário e senha, token ou certificado de cliente, e use ACLs para impedir que um cliente se passe por outro.

Dos criadores do TestMQTT

O broker público ficou pequeno?

Brokers públicos de teste são compartilhados com milhares de desconhecidos. O ConnectMQ oferece um broker MQTT privado, confiável para dispositivos reais — pronto em minutos.

  • Seu próprio broker isolado — ninguém mais lê seus tópicos
  • Autenticação por usuário e senha e controle de acesso por tópico
  • TLS e WebSocket seguro, MQTT 3.1.1 e MQTT 5
  • O mesmo código de cliente do primeiro teste até a produção