Mosquitto

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Mosquitto

O Mosquitto é um Brocker MQTT open source, que pode ser utilizado desde computadores de placa única até servidores.

O Mosquitto implementa o modelo publilsher/subscriber e pode ser utilizado em aplicações de Internet das Coisas, as quais fazem uso de sensores de baixa potência, atuadores, dispositivos móveis, microcontroladores e outros dispositivos programáveis.

O Mosquitto oferece comandos de linha como mosquitto_pub e mosquitto_sub para publicar e subscrever no brocker, respectivamente, além de bibliotecas em C para implementação de cliente MQTT.

Instalação e inicialização do Mosquitto no Ubuntu

sudo apt-get update
sudo apt-get mosquitto
sudo apt-get install mosquitto-clients

Depois de instalado no Ubuntu o Mosquito é automaticamente iniciado, assim como é iniciado a cada reboot. Para verificar se está rodando, pode utilizar o comando:

ps -aux|grep mosquitto

Parar, iniciar ou reiniciar Mosquitto:

service mosquitto stop
service mosquitto start
service mosquitto restart

Iniciar o Mosquitto com verbose dos logs de operação:

mosquitto -v 

Páginas man:

man mosquitto

Porta TCP de escuta do Mosquitto

O Mosquitto de escuta por padrão na porta TCP 1883.

A porta pode ser alterada com um parâmetro na inicialização:

mosquitto -p 1888
ou especificando no arquivo de configuração:
/etc/mosquitto/mosquitto.conf

Teste do Mosquitto

Use um terminal para subscrever um tópico:

mosquitto_sub -t "teste"

Use outro terminal para publicar uma mensagem em um tópico:

mosquitto_pub -m "Mensagem" -t "teste"

Usuários e senhas podem ser configurados para uso no Mosquito, ver [1] [2].

Ver detalhes e exemplos destes comandos em:

man mosquitto_pub
man mosquitto_sub

Mosquitto em contêiner Docker

Rodando o Mosquitto em um contêiner Docker com Alpine Linux [3]

Comando para rodar o mosquitto no contêiner
docker run -p 1883:1883 --name mosquitto trafex/alpine-mosquitto
Roda o contêiner para escutar na porta 1883 padrão do host, com nome mosquitto.
trafex/alpine-mosquitto é o nome da imagem.

O servidor Mosquitto fica acessível como se estivesse rodando na máquina que está hospedando o Docker.

Subscrever tópicos e e publicar mensagens

Usando o cliente para subscrever um tópico:

docker exec -ti mosquitto mosquitto_sub -h 127.0.0.1 -v -t '#'
O comando exec executa o mosquitto_sub no contêiner rodando.

Usando o cliente para publicar no tópico:

docker exec -ti mosquitto mosquitto_pub -h 127.0.0.1  -t 'hello' -m 'world'
O comando exec executa o mosquitto_pub no contêiner rodando.

Referências

Evandro.cantu (discussão) 11h06min de 13 de abril de 2020 (-03)