ws

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é a biblioteca ws?

ws é uma biblioteca WebSocket leve, rápida e testada pelo tempo para Node.js, escrita em TypeScript. Ela fornece implementações tanto do lado do cliente quanto do servidor do protocolo WebSocket (RFC 6455). A biblioteca se destaca pelo número mínimo de dependências, alta performance e suporte completo aos padrões modernos de WebSocket, incluindo a compressão permessage-deflate.

Para que serve a ws?

WebSocket é um protocolo de comunicação bidirecional sobre TCP que permite a troca de dados em tempo real entre cliente e servidor, sem a necessidade de requisições HTTP constantes. A biblioteca ws é essencial para criar aplicações que exigem transmissão instantânea de dados: chats, jogos online, cotações de bolsa, sistemas de notificações, edição colaborativa de documentos e qualquer outro serviço em tempo real.

Como instalar?

Instalação via npm ou yarn:

npm install ws
yarn add ws

Para projetos TypeScript, tipos adicionais não são necessários — a biblioteca já inclui suas próprias declarações de tipos.

Principais funcionalidades

  • Comunicação bidirecional — envio e recebimento simultâneo de mensagens.
  • Reconexão automática (implementada pelo código do usuário, mas a biblioteca fornece todos os eventos necessários).
  • Suporte a compressão (permessage-deflate) para reduzir o tráfego.
  • Trabalho com buffers e strings — envio de dados tanto textuais quanto binários.
  • Modelo baseado em eventos — tratamento dos eventos open, message, close, error.
  • Clustering — suporte para trabalhar com múltiplos processos (via broadcast).
  • Extensões WebSocket — suporte para protocolos e extensões personalizadas.

Exemplo de código em TypeScript

Um servidor e cliente WebSocket simples:

// server.tsimport { WebSocketServer } from 'ws';

const wss = new WebSocketServer({ port: 8080 });

wss.on('connection', (ws) => { console.log('Cliente conectado');

ws.on('message', (data) => { console.log('Recebido:', data.toString()); ws.send('Olá do servidor!'); });

ws.on('close', () => { console.log('Cliente desconectado'); });});

console.log('Servidor rodando na porta 8080');
// client.tsimport WebSocket from 'ws';

const ws = new WebSocket('ws://localhost:8080');

ws.on('open', () => { console.log('Conectado ao servidor'); ws.send('Olá do cliente!');});

ws.on('message', (data) => { console.log('Resposta do servidor:', data.toString()); ws.close();});

ws.on('close', () => { console.log('Conexão fechada');});

Quando usar a ws?

A biblioteca ws é ideal para:

  • Criação de aplicações em tempo real de alta carga (sistemas de chat, jogos online).
  • Transmissão de dados em tempo real (dados de bolsa, fluxos IoT).
  • Sistemas de notificações e alertas.
  • Trabalho colaborativo (edição colaborativa, quadros de tarefas).
  • Servidores rodando em cluster ou sob PM2.

Se você precisa de uma biblioteca WebSocket minimalista, rápida e confiável para TypeScript/Node.js — a ws é o padrão de facto.

Recommendations