Link

ESP8266 + conexão Websocket.

Nesse Post vamos utilizar um ESP8266 e criar uma conexão web bidirecional utilizando Websocket.

Websocket é um protocolo de comunicação leve e bidirecional, ou seja, é possível tanto o servidor quanto o cliente enviar e receber mensagens. A única desvantagem é que o protocolo não garante a entrega dos pacotes de mensagens.

Acesse o tutorial completo em: https://nakalabs.herokuapp.com/articles/2022/nodeMcuWebsocket.html.

Websockets.

Quando falamos de aplicações Cliente/Servidor, a tradicional comunicação Http é utilizada.

Uma comunicação entre as pontas utilizando Request/Response onde o servidor somente consegue se comunicar com o Cliente se esse enviar uma requisição.

O Websocket consegue resolver essa questão, onde o servidor pode se comunicar com o cliente com uma simples conexão aberta pelo cliente.

Assim que a conexão estiver estabelecida, o servidor pode enviar mensagens para o cliente até que a conexão seja fechada.

O Websocket permite uma comunicação bidirecional por canais full-duplex por um único socket TCP.

A especificação do protocolo Websocket se define em ws e wss, sendo o segundo protegido por certificado.

Como Websocket funciona?

Abrir uma conexão via Websocket é muito simples, hoje existem várias especificações para diversas plataformas:

  • Node.js;
  • Java;
  • Python;
  • Ruby;
  • Erlang;
  • C++;
  • .Net.

Basicamente precisamos instanciar o Websocket e implementar os métodos: onopen, onclose, onmessage, send, e onerror.

  • onopen: Abre uma conexão;
  • onclose: Fecha uma conexão;
  • onmessage: Recebe mensagens do Servidor;
  • send: Envia mensagem para o servidor;
  • onerror: Captura erros.

Fazendo testes no console do Browser.

Podemos fazer testes utilizando o próprio Browser. Utilizando os serviços do websocket.org podemos fazer um pequeno testes no navegador.

Segue abaixo um pequeno teste feito no próprio console do Browser:

Aqui abrimos uma conexão Websocket com “wss://echo.websocket.org/” e implementamos os métodos necessários para a comunicação.

Conclusão.

O protocolo Websocket pode ser uma alternativa para aplicações com baixa latência como jogos on-line. Mas nem tudo são flores, o protocolo não é suportado por Browsers antigos, o Internet Explorer por exemplo só a partir da versão 10.