A Goufalite está totalmente correta sobre esse problema: não é um problema técnico, apenas um problema de nomeação; portanto, muitos conselhos são muito opinativos com base na idéia do autor de quais nomes são os melhores.
A especificação do MQTT 3.1 diz :
- Os nomes de tópicos e os filtros de tópicos diferenciam maiúsculas de minúsculas
- Nomes de tópicos e filtros de tópico podem incluir o caractere de espaço
- Os nomes de tópico e os filtros de tópico são cadeias de caracteres UTF-8, NÃO DEVEM codificar para mais de 65535 bytes
Portanto, puramente falando por motivos técnicos, as regras somente ASCII e 'sem espaços' não são necessárias; todos os corretores MQTT compatíveis devem ser capazes de lidar com eles muito bem.
Eu realmente não concordo com alguns dos pontos que o HiveMQ faz de qualquer maneira:
Um espaço é o inimigo natural de cada programador; eles geralmente tornam muito mais difícil a leitura e a depuração de tópicos, quando as coisas não estão indo do jeito que deveriam. Tão semelhante ao primeiro, apenas porque algo é permitido não significa que ele deva ser usado. O UTF-8 conhece muitos tipos diferentes de espaços em branco, é bastante óbvio que caracteres tão incomuns devem ser evitados.
É altamente improvável que você use espaços de outra maneira que não seja apenas pressionar a SPACEtecla do teclado, então não acho que o uso acidental de homóglifos seja realmente um problema.
O uso de caracteres não ASCII UTF-8 torna muito difícil encontrar erros de digitação ou problemas relacionados ao conjunto de caracteres, porque geralmente eles não podem ser exibidos corretamente. A menos que seja realmente necessário, recomendamos evitar o uso de caracteres não ASCII em um tópico.
Ponto justo - digitar caracteres não ASCII pode ser um grande problema. Pessoalmente, eu evitaria Garage_Sensor_001/Temperature/°C
simplesmente porque muitos teclados não têm um símbolo de graus embutido (os teclados britânicos certamente não!). Essa decisão é realmente baseada na praticidade, e não no protocolo; se você é capaz de usar caracteres especiais sem muito barulho e tem certeza de que ninguém mais precisará digitar os caracteres, vá em frente!
Além disso, ficaria um pouco cético em relação a alguns dos conselhos do HiveMQ; mais adiante, na página que você vinculou, diz "Não se inscreva no #", que já foi disputado no site !