WebSockets revolucionaram a comunicação em tempo real na web, permitindo canais de comunicação bidirecionais e duplex completos através de uma única conexão TCP. Com o Node.js, um poderoso ambiente de execução JavaScript, aproveitar as capacidades dos WebSockets se torna ainda mais acessível e eficiente.
Neste guia, vamos passar pelo processo de integração e uso de WebSockets no Node.js.
O que é WebSocket?
Antes de mergulhar na implementação, é crucial entender o que são WebSockets e como eles diferem das requisições tradicionais de HTTP. Diferente do HTTP, que segue um modelo de requisição-resposta, os WebSockets fornecem conexões persistentes entre clientes e servidores, permitindo a troca de dados em tempo real e de baixa latência.
Isso os torna ideais para aplicações que requerem atualizações instantâneas, como aplicações de chat, jogos multiplayer e ferramentas colaborativas.

Casos de Uso do WebSocket
WebSocket é particularmente significativo nos seguintes cenários:
- Sistemas de notificação em tempo real: Notifique instantaneamente os clientes quando novos dados estiverem disponíveis no servidor.
- Chat online: Crie aplicações de chat em tempo real para permitir comunicação instantânea entre usuários.
- Ferramentas de colaboração em tempo real: Utilize para compartilhamento de documentos em tempo real, edição gráfica ou outro trabalho colaborativo.
- Jogos online: Permita interação e sincronização em tempo real entre jogadores.
- Sistemas de monitoramento em tempo real: Monitore o status do sistema e notifique instantaneamente os administradores.
Configurando um Projeto Node.js
Para começar, garanta que você tenha o Node.js instalado em seu sistema. Você pode verificar sua instalação executando node -v
no seu terminal.

Uma vez confirmado, crie um novo diretório para seu projeto e navegue até ele.
mkdir websocket-example
cd websocket-example
Inicialize um novo projeto Node.js usando npm:
npm init -y
Este comando cria um arquivo package.json
com configurações padrão. Em seguida, instale o pacote ws
, uma biblioteca popular de WebSocket para Node.js:
npm install ws
Implementando um Servidor WebSocket
Com o projeto configurado, vamos criar um servidor WebSocket usando a biblioteca ws
. Crie um novo arquivo chamado server.js
em seu diretório de projeto e adicione o seguinte código:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {console.log('Um novo cliente conectado.');
ws.on('message', function incoming(message) {console.log('Recebido: %s', message);
});
ws.send('Bem-vindo ao servidor WebSocket!');
});
Este código inicializa um servidor WebSocket na porta 8080
e escuta por conexões entrantes. Ao conectar, ele registra uma mensagem e configura um ouvinte de eventos para mensagens recebidas. Ele também envia uma mensagem de boas-vindas ao cliente.
Criando um Cliente WebSocket
Agora, vamos criar um cliente WebSocket simples para se conectar ao nosso servidor. Crie um novo arquivo chamado client.js
no diretório do projeto e adicione o seguinte código:
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', function open() {console.log('Conectado ao servidor.');
});
ws.on('message', function incoming(data) {console.log('Recebido do servidor: %s', data);
});
Este código estabelece uma conexão WebSocket para ws://localhost:8080
e registra uma mensagem ao conectar com sucesso. Ele também configura um ouvinte de eventos para receber mensagens do servidor.
Executando a Aplicação
Antes de executar a aplicação, garanta que o servidor WebSocket (server.js) está em execução. Você pode iniciá-lo executando:
node server.js
Uma vez que o servidor estiver em execução, execute o script do cliente (client.js) em outra janela do terminal:
node client.js
Você deve ver mensagens indicando conexões bem-sucedidas tanto do servidor quanto do cliente.
Apidog: Tornando mais Eficiente os Testes de API WebSocket

Em vez do Node.js, considere usar o Apidog, uma excelente ferramenta semelhante ao Postman para testes versáteis de API. O Apidog suporta testes de API WebSocket, oferecendo interfaces amigáveis para criar, gerenciar e testar APIs WebSocket.