Skip to content

Lucasmaia435/API-mqtt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API broker MQTT 🖥️

:octocat: Este repositório mostra uma API de Broker MQTT básico construído usando Nodejs


Configurando e preparando o ambiente

Instalar o Node no seu computador.

Instale o Node a partir deste link : https://nodejs.org/.

Após instalar o Node, verifique as suas versões.

node -v
npm -v

Output:

v10.16.0
6.9.0

Crie uma pasta para o projeto

C:\Users\user\Desktop> mkdir api_mqtt
C:\Users\user\Desktop> cd api_mqtt

mkdir "nome_da_pasta" cria uma nova pasta cd "nome_da_pasta" entra na pasta

Inicie um projeto

C:\Users\user\Desktop\api_mqtt> npm init -y

Irá ser gerado um package.json, que é o arquivo de gerenciamento do nosso projeto, onde irá estar listado o autor, dependencias usadas e etc.

{
  "name": "api_mqtt",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Package.json criado

Instalar as dependências

  1. Express.js
  2. MQTT.js
  3. CORS
C:\Users\user\Desktop\api_mqtt> npm install mqtt --save
C:\Users\user\Desktop\api_mqtt> npm install express --save
C:\Users\user\Desktop\api_mqtt> npm install cors

Depois da instalação ser concluída será adicionado a sessão de dependencies ao nosso package.json:

  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mqtt": "^3.0.0"
  }

Desenvolvendo a API

Na pasta do projeto, crie um arquivo chamado api_broker.js

Nas primeiras linhas iremos chamar as nossas dependências:

const express = require('express');
const mqtt = require('mqtt');
const cors = require('cors');

Agora para realizarmos a conexão com o servidor MQTT você poderá ver neste reposítório

A conexão do broker feita :

const options = {
    clientId: "node-user",
    username: 'user_name',
    password: 'user_pass',
    port: 'server_port',
}

const client = mqtt.connect('mqtt://server_adress',options);

Criando o nosso cliente responsável pelas requisições da API:

const app = express();

Realizar subscribes do broker da API:

client.subscribe('topic');
/*
client.subscribe('topic1');
client.subscribe('topic2');
*/

Criando as requisições

No protocolo HTTP existem diversos tipos de requisições, porém só iremos usar a GET nesta API.

Então criamos uma requisição do tipo GET para a rota / :

app.use(cors());

app.get('/',(req,res) => {

});

O app.use(cors()) serve para habilitar o CORS para qualquer cliente que tente realizar uma requisição.

Realizando um Publish

Dentro da nossa requisição, iremos adicionar um publish para o nosso broker:

app.get('/',(req,res) => {
    client.publish("topic","this is a message from route '/'");
    res.send("Publish made");
});

Neste publish enviamos a mensagem this is a message from route '/' para o tópico topic. E sempre que um usuário realizar essa requisição, o publish será feito, e ele tera Output:

Publish made

Após a nossa requisição, adicionamos o app.listen(), para informar qual porta a nossa API estará funcionando:

app.listen(4000,() => {
    console.log("Connected to port 4000");
});

Executando a API

Para executar a API, abra o seu arquivo package.json e modifique o scrips para:

"scripts": {
    "start": "node api_broker.js"
},

Testando a sua API

Com o programa chamado Insomnia, podemos realizar requisições para a nossa API, a fim de testa-lá.

Após abrir o Insomnia, crie uma nova request do tipo GET:

Com a sua API em execução, coloque o seguinte endereço no Insomnia localhost:port, a port usada foi 4000, então temos:

Agora, apenas clicamos em Sende esperamos o resultado:

Pronto, sua API está pronta e testada 😄 !

About

API de um broker MQTT, feita em node.js

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors