Qu'est-ce que la bibliothèque ws ?
ws est une bibliothèque WebSocket légère, rapide et éprouvée pour Node.js, écrite en TypeScript. Elle fournit à la fois des implémentations client et serveur du protocole WebSocket (RFC 6455). La bibliothèque se distingue par un nombre minimal de dépendances, des performances élevées et une prise en charge complète des normes WebSocket modernes, y compris la compression permessage-deflate.
Pourquoi utiliser ws ?
WebSocket est un protocole de communication bidirectionnelle sur TCP qui permet d'échanger des données en temps réel entre un client et un serveur sans nécessiter de requêtes HTTP constantes. La bibliothèque ws est essentielle pour créer des applications nécessitant un transfert de données instantané : chats, jeux en ligne, cotations boursières, systèmes de notifications, édition collaborative de documents et tout autre service en temps réel.
Comment installer ?
Installation via npm ou yarn :
npm install wsyarn add wsPour les projets TypeScript, aucun type supplémentaire n'est requis — la bibliothèque inclut déjà ses propres déclarations de types.
Fonctionnalités principales
- Communication bidirectionnelle — envoi et réception simultanés de messages.
- Reconnexion automatique (implémentée par le code utilisateur, mais la bibliothèque fournit tous les événements nécessaires).
- Prise en charge de la compression (permessage-deflate) pour réduire le trafic.
- Travail avec des buffers et des chaînes — envoi de données textuelles et binaires.
- Modèle événementiel — gestion des événements open, message, close, error.
- Clustering — prise en charge du travail avec plusieurs processus (via broadcast).
- Extensions WebSocket — prise en charge de protocoles et extensions personnalisés.
Exemple de code en TypeScript
Serveur et client WebSocket simples :
// server.tsimport { WebSocketServer } from 'ws';
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (ws) => { console.log('Client connecté');
ws.on('message', (data) => { console.log('Reçu :', data.toString()); ws.send('Bonjour du serveur !'); });
ws.on('close', () => { console.log('Client déconnecté'); });});
console.log('Serveur démarré sur le port 8080');// client.tsimport WebSocket from 'ws';
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', () => { console.log('Connecté au serveur'); ws.send('Bonjour du client !');});
ws.on('message', (data) => { console.log('Réponse du serveur :', data.toString()); ws.close();});
ws.on('close', () => { console.log('Connexion fermée');});Quand utiliser ws ?
La bibliothèque ws est idéale pour :
- Créer des applications temps réel à forte charge (systèmes de chat, jeux en ligne).
- Diffuser des données en temps réel (données boursières, flux IoT).
- Systèmes de notifications et d'alertes.
- Travail collaboratif (édition collaborative, tableaux de tâches).
- Serveurs fonctionnant en cluster ou sous PM2.
Si vous avez besoin d'une bibliothèque WebSocket minimaliste, rapide et fiable pour TypeScript/Node.js — ws est la norme de facto.
Aussi dans la bibliothèque
gomock pour Go : guide complet avec exemples
config Rust : guide complet avec exemples pratiques
Client OAuth pour PHP : intégration avec Google, GitHub et VK
Rate Limiting en PHP : Limitation du taux de requêtes pour protéger le site
Travailler avec XML en Swift (iOS/macOS) : Foundation et SwiftXML