
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.