TL;DR
WebSockets bieten bidirektionale Echtzeit-Kommunikation zwischen Client und Server. Ideal für Chats, Benachrichtigungen, Live-Updates und Spiele. Hier erfahren Sie, wann Sie WebSockets verwenden und wie Sie sie in 2026 implementieren.
Für wen ist das
- Entwickler, die Echtzeit-Features erstellen
- Unternehmen, die Live-Updates benötigen
- Teams, die an interaktiven Anwendungen arbeiten
Keywords (SEO)
websockets, real-time communication, socket.io, live updates, bidirectional communication
Was sind WebSockets?
WebSocket ist ein Kommunikationsprotokoll:
- Bidirektionale Kommunikation (Client ↔ Server)
- Persistente Verbindung (schließt nicht)
- Niedriger Overhead (vs. HTTP-Polling)
- Echtzeit-Updates
Vergleich mit HTTP:
- HTTP: Request → Response, Verbindung schließt
- WebSocket: Persistente Verbindung, beide Seiten können Daten senden
Wann verwenden:
- ✅ Chat, Messaging
- ✅ Live-Benachrichtigungen
- ✅ Echtzeit-Dashboards
- ✅ Kollaborative Bearbeitung
- ✅ Gaming
- ❌ Einfache CRUD-Operationen (HTTP reicht)
Grundlegende Implementierung
Node.js mit ws
Server:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
ws.send('Welcome!');
ws.on('message', (message) => {
wss.clients.forEach((client) => {
if (client !== ws && client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
});
});
Client:
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => ws.send('Hello!');
ws.onmessage = (event) => console.log(event.data);
Socket.io
Server:
const { Server } = require('socket.io');
const io = new Server(3001);
io.on('connection', (socket) => {
socket.on('message', (data) => {
io.emit('message', data);
});
});
Client:
import { io } from 'socket.io-client';
const socket = io('http://localhost:3001');
socket.emit('message', { text: 'Hello!' });
Use Cases
1. Chat Application
- Real-time messaging
- Typing indicators
- Online/offline status
2. Live Notifications
- Real-time alerts
- User-specific notifications
3. Real-time Dashboard
- Live metrics
- Continuous updates
4. Collaborative Editing
- Shared documents
- Simultaneous editing
Best Practices
1. Authentication
io.use((socket, next) => {
const token = socket.handshake.auth.token;
if (verifyToken(token)) {
next();
} else {
next(new Error('Authentication failed'));
}
});
2. Error Handling
socket.on('error', (error) => {
console.error('Socket error:', error);
});
3. Rate Limiting
- Limit messages per user
- Prevent abuse
4. Room Management
socket.on('join-room', (roomId) => {
socket.join(roomId);
});
WebSockets vs Alternatives
HTTP Polling:
- ❌ Overhead
- ❌ Delay
- ✅ Simpler
WebSockets:
- ✅ Real-time
- ✅ Efficient
- ❌ More complex
Scaling
Redis Adapter für mehrere Server:
const { createAdapter } = require('@socket.io/redis-adapter');
io.adapter(createAdapter(pubClient, subClient));
FAQ
Wann WebSockets statt HTTP?
Bei Echtzeit, bidirektionaler Kommunikation. Für einfache CRUD-Operationen reicht HTTP.
Funktionieren WebSockets durch Proxy?
Ja, mit entsprechender Konfiguration. Moderne Proxies unterstützen WebSockets.