Entenda o funcionamento de um WebSocket na Prática com JavaScript e pare de uma vez por todas de fazer loops para buscar atualizações de uma entidade (ou estado), melhorando assim a performance da aplicação.
Mas antes de vermos como funciona um websocket vamos entender o que é um websocket.
O que é WebSocket
O WebSocket é um protocolo que permite que o cliente e o servidor se comuniquem de forma bidirecional.
Ou seja, é uma forma de criar um túnel entre o cliente e o servidor, onde esse túnel tem duas mãos.
Assim é possível que o cliente possa comunicar com o servidor e vice versa.
Agora se você quiser saber mais sobre as especificações do protocolo de websocket eu sugiro a leitura da documentação da IETF.
Porque usar WebSockets
Usar um loop para buscar informações criando um pooling é algo extremamente custoso.
Por permitir que a comunicação seja bidirecional o websocket auxilia muito na performance da aplicação, removendo os poolings.
Além da melhoria na performance o consumo de recursos usando websocket no lugar de grandes poolings é muito menor.
WebSocket na Prática com JavaScript – Exemplo
Para criar um websocket é só usar o construtor, passando a url do websocket e o protocolo utilizado.
var exampleSocket = new WebSocket("wss://www.example.com/socketserver", "protocolOne");
Para enviar uma mensagem é usar o comando send.
exampleSocket.send(JSON.stringify({mensagem: "teste"}));
Mas para receber mensagem é só usar o comando onmessage.
exampleSocket.onmessage = function (event) {
console.log(event.data);
}
Já para fechar a conexão do socket é só usar o comando close.
exampleSocket.close();
Bom, essa é a base de websockets no JavaScript.
Mas caso queira uma aplicação real, confira esse chat construído pela equipe da Mozilla.
O exemplo conta com a implementação do servidor.
Conta também com a implementação do lado do cliente.
E além disso conta com uma tela simples para iteração.
WebSocket na Prática com JavaScript – Conclusão
Os websockets facilitam e muito a comunicação em tempo real entre o cliente e o servidor, mas como tudo na TI é preciso cuidado.
O gerenciamento de conexões deve ser feito com cuidado, pois ela deve ser encerrada caso o cliente feche o site, ou ocorra uma falha de internet por exemplo.
Caso queira mais dicas confira aqui.