Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Tutorial Mosquitto 
Instalação​ ​(Ubuntu) 
 
 
1. Faça o download da última versão do mosquitto em ​http://mosquitto.org/download/​, na seção 
“Source”. 
2. Extraia os arquivos. 
3. Usando o terminal, vá até a pasta com os arquivos extraídos (cd <local da pasta>). 
4. Utilize o comando “sudo make install” para começar a instalação. 
5. Inicie o mosquitto usando o comando “mosquitto”. 
6. Baixe e instale o cliente usando “sudo apt­get install mosquitto­clients”. 
 
No passo 4, podem surgir erros com os arquivos “ares.h” e “ssl.h”. Nesse caso, basta baixar os pacotes 
que contêm os arquivos em questão. O pacote do “ares.h” é libc­ares­dev e do “ssl.h”, libssl­dev. Para 
instalá­los, utilize o comando “sudo apt­get install <nome do pacote>”. 
 
Abaixo são alguns comandos, com suas respectivas opções, que são 
utilizados para publicação/inscrição no broker com o cliente. 
     
mosquitto_pub​ (cliente para publicar mensagens em determinado tópico) 
 
­m <mensagem> 
Manda mensagem para tópico. 
­n 
Mensagem vazia para o tópico. 
­r 
Armaneza a mensagem enviada como última mensagem do tópico que recebeu a mensagem. A última 
mensagem salva, se houver, será apagada. Todos os novos clientes que se inscreverem nesse tópico, 
receberão essa mensagem. 
­t <tópico> 
Especifica o tópico que receberá a mensagem. 
­q 
Define o nível da qualidade do serviço (QoS). 
0: O broker/cliente manda mensagem sem confirmação. 
1: O broker/cliente manda mensagem e aguarda confirmação. 
2: O broker/cliente manda mensagem usando o “4­way handshake”. 
­u 
Especifica o nome do usuário. 
­P 
Especifica a senha do usuário. 
 
 
Exemplos: 
 
mosquitto_pub ­t temperatura ­m 22   
publica mensagem “22” no tópico “temperatura”. 
 
mosquitto_pub ­t status ­m on ­r  
publica mensagem “on” no tópico “status” e salva a mensagem como a última mensagem enviada. 
 
 
mosquitto_sub​ (cliente para inscrição em tópicos) 
 
­t <tópico> 
Especifica o tópico desejado para inscrição. 
­N 
O caractere de fim de linha não será adicionado no fim de cada mensagem recebida. 
 
­u <usuário> 
Especifica o nome do usuário. 
 
­P <senha> 
Especifica a senha do usuário. 
 
­c 
Desabilita o “clean session”. Quando o cliente estiver inscrito em determinado tópico e se desconectar, 
o cliente receberá todas as mensagens que foram enviadas para aquele tópico, assim que se conectar 
novamente. É necessário que a publicação da mensagem e a inscrição tenham QoS > 0. 
Atenção: ​é obrigatório especificar a identificação, usando a opção abaixo, ao utilizar o ­c. E, também, 
especificar a qualidade do serviço (ver mosquitto_pub) maior que 0 para que a opção surta efeito. 
 
­i <identifcação> 
Especifica a identificação do cliente que está se conectando ao broker.  
 
No MQTT, tópicos são tratados como hierarquia, sendo “/” usado como separador. '+' pode ser usado 
para a inscrição de tópicos em um mesmo nível, e, ao utilizar '#', a inscrição acontece em todos os 
tópicos naquele nível e nos níveis mais baixos. 
 
Exemplos: 
 
mosquitto_sub ­t sensores/+ 
recebe mensagem de todos os tópicos no nível APENAS após sensores. Recebe mensagens 
publicadas em “sensores/casa”, “sensores/lab”, mas NÃO recebe mensagens publicadas em 
“sensores”, “sensores/casa/1” etc. 
 
mosquitto_sub ­t sensores/# 
recebe mensagem de todos os tópicos nos níveis após sensores. Recebe mensagens publicadas em 
“sensores/casa”, “sensores/lab”, “sensores/casa/1” etc. Não recebe mensagens em tópicos antes de #, 
como, por exemplo, “sensores”. 
 
mosquitto_sub ­t wiser ­c ­i dispositivo1 ­q 2 
recebe mensagens do tópico “wiser” utilizando a clean session, com id “dispositivo1”. Como a qualidade 
de serviço definida é 2, caso o cliente desconecte­se do broker, ao reconectar, ele receberá todas as 
mensagens que foram enviadas a esse tópico durante o tempo em que estava desconectado. 
 
 
     
mosquitto_passwd​ ​(gerenciamento de arquivo de usuários/senhas) 
 
­c <caminho do arquivo> <nome do usuário> 
Cria um novo arquivo de senhas. Caso já exista um arquivo de senha com o mesmo nome, todas as 
informações do antigo arquivo serão perdidas. 
­D <caminho do arquivo> <nome do usuário> 
Deleta determinado usuário do arquivo de senhas. 
 
Exemplos: 
 
mosquitto_passwd ­c /etc/mosquitto/senhas cristhian 
Cria um arquivo de senhas em “/etc/mosquitto/senhas” e adiciona o usuário “cristhian” ao arquivo. A 
senha é pedida logo após a execução do comando. 
 
mosquitto_passwd /etc/mosquitto/senhas wiser 
Adiciona o usuário “wiser” ao arquivo. A senha é pedida logo após a execução do comando. 
 
mosquitto_passwd ­D /etc/mosquitto/senhas wiser 
Apaga o usuário “wiser” do arquivo de senhas. 
 
 
 
 
 
Configuração do broker 
 
O broker possui um arquivo de configuração que, por padrão, encontra­se na pasta do mosquitto, com 
nome “mosquitto.conf”.  
É um arquivo de texto com as opções de configuração do broker e seus respectivos valores.  
 
     
acl_file <caminho do arquivo> 
Define o caminho do arquivo a ser utilizado como lista de controle de acesso. Uma lista de controle de 
acesso define permissões de usuários aos tópicos. Existem 3 permissões: 
1. read – ler (sub) 
2. write – escrever (pub) 
3. readwrite – ler e escrever (sub/pub) 
 
No arquivo, é definido o usuário e as suas permissões, usando uma linha pra informar o usuário a ser 
modificado e nas linhas seguintes as permissões. 
Ex.: 
 
user wiser 
topic temp/lab 
topic read temp/sala 
 
user cristhian 
topic write ar/lab 
 
Quando a permissão não é definida após “topic”, o servidor interpreta como “readwrite”. Ou seja, no 
exemplo acima, o usuário “wiser” pode publicar e se inscrever no tópico temp/lab, e se inscrever no 
tópico temp/sala. O usuário “cristhian” pode publicar no tópico “ar/lab”. Qualquer outro tópico, que as 
permissões não estejam definidas para qualquer usuário, o usuário não tem qualquer permissão no 
mesmo. 
 
É possível, também, definir padrões numa lista, com o “pattern”, facilitando a atribuição de permissões a 
vários usuários, usando “%u”, quando quiser tratar do usuário em questão. 
Ex.: 
 
user wiser 
topic temp/lab 
topic read temp/sala 
 
user cristhian 
topic write ar/lab 
 
pattern write sensores/%u 
 
Além das permissões dos usuários wiser e cristhian, qualquer outro usuário que se conectar ao broker, 
conseguirá publicar no tópico sensores/<nome do usuário>. “sensor1” consegue publicar apenas em 
“sensores/sensor1”, por exemplo. 
 
allow_anonymous [true | false] 
Quando atribuído falso, é necesśario se autenticar ao broker para publicar/se inscrever, usando “­u e 
­P”. Caso contrário, a conexão é negada. 
 
password_file <caminho do arquivo> 
Definir caminho do arquivo que contém os usuários, e suas respectivas senhas, que podem acessar o 
broker. 
 
clientid_prefixes <prefixo> 
Se definido, apenas clientes com id que começa com <prefixo> poderão acessar o broker. 
 
Exemplo de arquivo de configuração: 
 
allow_anonymous true 
password_file /etc/mosquitto/passwd 
clientid_prefixes wiser 
acl_file /etc/mosquitto/acl.conf

Mais conteúdos dessa disciplina