Message Queuing Telemetry Transport

O protocolo MQTT foi inventado em 1999 para ser usado no setor de petróleo e gás. Engenheiros precisavam de um protocolo para largura de banda mínima e perda mínima de bateria para monitorar oleodutos via satélite. Inicialmente, o protocolo era conhecido como Message Queuing Telemetry Transport devido ao produto da IBM MQ Series que oferecia suporte a sua fase inicial. Em 2010, a IBM lançou o MQTT 3.1 como um protocolo gratuito e aberto para qualquer pessoa implementar, que foi encaminhado, em 2013, ao órgão de especificação Organization for the Advancement of Structured Information Standards (OASIS) para manutenção. Em 2019, o OASIS lançou uma versão atualizada do MQTT 5. Agora o MQTT não é mais um acrônimo, mas é considerado o nome oficial do protocolo. Em resumo o protocolo foi projetado para transmitir mensagens entre dispositivos conectados em redes com largura de banda limitada ou condições de conectividade pouco confiáveis

Como funciona?

Utilizando o protocolo TCP e MQTT-SN, os dispositivos se comunicam por meio de um intermediário chamado broker MQTT. Os dispositivos podem atuar como publicadores (publishers), enviando mensagens para o broker, ou como assinantes (subscribers), recebendo mensagens do broker. O broker é responsável por receber, armazenar e encaminhar as mensagens para os assinantes corretos, com base nos tópicos aos quais eles estão inscritos. Os tópicos são uma parte fundamental do MQTT. Eles são strings de texto que atuam como categorias ou rótulos para as mensagens. Os publicadores associam suas mensagens a tópicos específicos, enquanto os assinantes se inscrevem em tópicos de seu interesse. Essa estrutura de tópicos permite uma forma flexível de filtrar e direcionar as mensagens aos dispositivos corretos.

Exemplo-teste de utilização local

Podemos utilizar um broker para obter a visualização do protocolo. O broker em questão é o mosquitto da Eclipse Foundation (desenvolvido por cedalo) e pode ser baixado gratuitamente no próprio site mosquitto.

  • Passo 1: Baixar e instalar todos os pacotes que o instalador do mosquitto oferece pois são essenciais (marcar todas as checkboxes do instalador).
  • Passo 2: Abrir o prompt de comando (cmd) e entrar na pasta em que o mosquitto está instalado. Geralmente se encontra em "C:\Program Files\mosquitto". Use o comando cd para navegar entre as pastas.
  • Passo 3: Executar o comando "mosquitto.exe -v", isso iniciará o software e mostrará informações sobre a conexão.
  • Passo 4: Abrir outro cmd e acessar a pasta assim como no passo 2. Utilizando o comando "mosquitto_sub -h localhost -p 1883 -t level" você se conecta como subscriber.
  • Passo 5: Abrir um terceiro terminal, acessar a pasta de instalação e executar o comando "mosquitto_pub -h localhost -p 1883 -t level -m {mensagem que deseja enviar}". Pronto, assim você se conectou como um publisher e mandou uma mensagem para o subscriber.
  • Passo 6: Verificar a mensagem no terminal 2 (subscriber) que você enviou do terminal 3 (publisher).

Mensagens do protocolo

value. msg
  1. Reservado
  2. CONNECT - Requisição do cliente para conectar ao servidor
  3. CONNACK - Reconhecimento da conexão
  4. PUBLISH - Publicar mensagem
  5. PUBACK - Reconhecimento da publicação
  6. PUBREC - Publicação recebida
  7. PUBREL - Publicação lançada
  8. PUBCOMP - Publicação completa
  9. SUBSCRIBE - Pedido de inscrição
  10. SUBACK - Reconhecimento de inscrição
  11. UNSUBSCRIBE - Pedido de desinscrição
  12. UNSUBACK - Reconhecimento desinscrição
  13. PINGREQ - Requisição PING
  14. PINGRESP - Resposta PING
  15. DISCONNECTy - Cliente esta desconectado
  16. Reservado