Was ist die ws-Bibliothek?
ws ist eine leichtgewichtige, schnelle und bewährte WebSocket-Bibliothek für Node.js, geschrieben in TypeScript. Sie bietet sowohl Client- als auch Server-Implementierungen des WebSocket-Protokolls (RFC 6455). Die Bibliothek zeichnet sich durch minimale Abhängigkeiten, hohe Leistung und vollständige Unterstützung moderner WebSocket-Standards aus, einschließlich der permessage-deflate-Komprimierung.
Wofür wird ws benötigt?
WebSocket ist ein Protokoll für bidirektionale Kommunikation über TCP, das den Echtzeit-Datenaustausch zwischen Client und Server ermöglicht, ohne dass ständige HTTP-Anfragen erforderlich sind. Die ws-Bibliothek wird benötigt, um Anwendungen zu erstellen, die eine sofortige Datenübertragung erfordern: Chats, Online-Spiele, Börsenkurse, Benachrichtigungssysteme, gemeinsame Dokumentenbearbeitung und alle anderen Echtzeitdienste.
Wie installiert man es?
Installation über npm oder yarn:
npm install wsyarn add wsFür TypeScript-Projekte sind keine zusätzlichen Typen erforderlich – die Bibliothek enthält bereits Typdeklarationen.
Hauptfunktionen
- Bidirektionale Kommunikation — gleichzeitiges Senden und Empfangen von Nachrichten.
- Automatische Wiederverbindung (wird durch benutzerdefinierten Code implementiert, aber die Bibliothek stellt alle erforderlichen Ereignisse bereit).
- Unterstützung für Komprimierung (permessage-deflate) zur Reduzierung des Datenverkehrs.
- Arbeit mit Buffern und Strings — Senden sowohl von Text- als auch von Binärdaten.
- Ereignismodell — Verarbeitung der Ereignisse open, message, close, error.
- Clustering — Unterstützung für die Arbeit mit mehreren Prozessen (über broadcast).
- WebSocket-Erweiterungen — Unterstützung für benutzerdefinierte Protokolle und Erweiterungen.
Codebeispiel in TypeScript
Einfacher WebSocket-Server und -Client:
// server.tsimport { WebSocketServer } from 'ws';
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (ws) => { console.log('Client verbunden');
ws.on('message', (data) => { console.log('Empfangen:', data.toString()); ws.send('Hallo vom Server!'); });
ws.on('close', () => { console.log('Client getrennt'); });});
console.log('Server läuft auf Port 8080');// client.tsimport WebSocket from 'ws';
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', () => { console.log('Mit Server verbunden'); ws.send('Hallo vom Client!');});
ws.on('message', (data) => { console.log('Serverantwort:', data.toString()); ws.close();});
ws.on('close', () => { console.log('Verbindung geschlossen');});Wann sollte ws verwendet werden?
Die ws-Bibliothek ist ideal geeignet für:
- Erstellung hochbelastbarer Echtzeitanwendungen (Chat-Systeme, Online-Spiele).
- Echtzeit-Datenübertragung (Börsendaten, IoT-Streams).
- Benachrichtigungs- und Alarmierungssysteme.
- Zusammenarbeit (kollaboratives Bearbeiten, Aufgabenboards).
- Server, die in einem Cluster oder unter PM2 laufen.
Wenn Sie eine minimalistische, schnelle und zuverlässige WebSocket-Bibliothek für TypeScript/Node.js benötigen – ws ist der De-facto-Standard.
Auch in der Bibliothek
Multer für JavaScript (Node.js): Komplettguide mit Beispielen
GraphQL Java: Ein leistungsstarkes Werkzeug zur Erstellung moderner APIs in Java
PM2 — Überwachung von JavaScript-Anwendungen (Node.js)