O MQTT utiliza o paradigma publish/subscribe (pub/sub) para a troca de mensagens. O paradigma pub/sub implementa um middleware chamado de broker.
- Publish / Subscribe
- O publisher é responsável por se conectar ao broker e publicar mensagens.
- O subscriber é responsável por se conectar ao broker e receber as mensagens que ele tiver interesse
- Messages
- Cada mensagem é enviada para um determinado tópico
- Topics
- O paradigma pub/sub utiliza o conceito de tópicos para processar as mensagens
- Broker
Na imagem acima é possível observar a arquitetura do paradigma pub/sub.
Funcionamento básico:
Diferente de outros protocolos de mensagem, o publisher não envia a mensagem diretamente ao subscriber, mas sim ao broker.
O publisher envia a mensagem para o broker em um determinado tópico.
O broker é responsável por receber a mensagem do publisher e fazer uma pré-filtragem das mensagens e enviá-las para os subscribers que estivem registrados em um determinado tópico.
Os publishers se conectam, enviam a mensagem para o Tópico desejado e desconectam em seguida. No entanto, os subscribers se mantém conectados a todo momento, inclusive, dando pings (heatbeat), ocupando assim uma porta de comunicação permanentemente. É importante observar o limite de cada equipamento/roteador do total de conexões simultâneas vivas ou poderá apresentar problemas