Protocolo MQTT

4. Funcionamento prático

4.1 Etapas de uma conexão MQTT

O funcionamento do MQTT segue uma sequência estruturada que envolve três fases principais: conexão, comunicação e desconexão. Abaixo estão as etapas essenciais para o estabelecimento de uma sessão MQTT entre cliente e broker:

  1. Estabelecimento de conexão: o cliente abre uma conexão TCP com o broker na porta padrão (geralmente 1883 ou 8883 com TLS).
  2. Envio do pacote CONNECT: o cliente envia um pacote CONNECT com informações como ID do cliente, credenciais, tempo de Keep Alive e outras configurações.
  3. Recebimento do pacote CONNACK: o broker responde com um CONNACK indicando se a conexão foi aceita ou rejeitada.

4.2 Publicação e assinatura

Após a conexão ser estabelecida, o cliente pode:

Quando uma mensagem é publicada em um tópico, o broker é responsável por distribuí-la a todos os clientes que assinaram aquele tópico, de acordo com o nível de Qualidade de Serviço (QoS) especificado.

4.3 Keep Alive e Ping Requests

O MQTT utiliza um mecanismo chamado Keep Alive para monitorar a atividade entre cliente e broker, garantindo que ambos ainda estejam disponíveis.

O intervalo de Keep Alive é definido pelo cliente na etapa de conexão (em segundos). Se esse intervalo for excedido sem o envio de mensagens, o cliente envia um pacote PINGREQ ao broker para manter a sessão ativa.

O broker, ao receber o PINGREQ, responde com um PINGRESP. Caso o broker não receba qualquer pacote do cliente durante o tempo de Keep Alive, ele pode encerrar a conexão.

Esse mecanismo é fundamental para manter conexões persistentes e detectar desconexões silenciosas de forma eficiente.