No meu entendimento, no MQTT, um tópico é criado quando um cliente publica algo com o nome do tópico correspondente.
Não há necessidade de configurar um tópico, basta publicar nele.
A partir daqui .
É possível que um cliente se inscreva no seu próprio tópico, depois de publicado, criado? Não encontrei nenhuma restrição nas especificações . Não está listado como possível comportamento anormal nem:
5.4.8 Detectando comportamentos anormais
As implementações do servidor podem monitorar o comportamento do cliente para detectar possíveis incidentes de segurança. Por exemplo:
- Tentativas repetidas de conexão
- Tentativas repetidas de autenticação
- Terminação anormal de conexões
- Varredura de tópicos (tentativas de enviar ou assinar muitos tópicos)
- Enviando mensagens não entregues (sem assinantes dos tópicos)
- Clientes que se conectam, mas não enviam dados
Com base nisso, acho que é certamente possível. Então, eu estou interessado em quais são os casos de uso desse recurso?
Por que o padrão permite esse mecanismo, seria complicado rastrear o proprietário dos tópicos? Portanto, simplesmente permite que os clientes se inscrevam em seu próprio tópico.
Um caso de uso em que consigo pensar é que dessa maneira um cliente pode verificar seus dados publicados.
Sim.
Os clientes MQTT estão conectados a um broker que pode ser uma nuvem ou outro dispositivo.
Não existe algo como criação de tópico. Eles são usados como cabeçalho para uma mensagem. Portanto, se seu cliente se inscreveu em um tópico e se ele publica algo sobre esse tópico, a mensagem será recebida por meio do broker para o cliente novamente.
Exemplos de bons corretores são o Mosquitto para execução em dispositivos e o CloudMqtt para corretor baseado em nuvem
fonte