WebSocket
Zur Navigation springen
Zur Suche springen
Was ist WebSocket?
- WebSocket ist ein Protokoll für eine dauerhafte Verbindung zwischen Browser und Server.
- Im Gegensatz zu HTTP bleibt die Verbindung offen und erlaubt beidseitige Kommunikation.
- WebSocket beginnt mit einem HTTP-Handshake und wechselt dann das Protokoll.
Warum wird WebSocket verwendet?
- HTTP ist zustandslos und schließt nach jeder Antwort die Verbindung.
- Mit WebSocket können Server und Clients jederzeit Nachrichten austauschen.
- Geeignet für Live-Chats, Browsergames, Dashboards, Steuerungssysteme usw.
Ablauf einer WebSocket-Verbindung
- Der Client sendet einen normalen HTTP-Request mit Upgrade-Header:
GET /socket HTTP/1.1 Host: example.org Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: xyz123== Sec-WebSocket-Version: 13
- Der Server antwortet mit einem Protokollwechsel:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: abc456==
- Ab hier läuft die Verbindung dauerhaft über WebSocket.
Voraussetzungen für Apache2
- Das Modul proxy_wstunnel muss aktiviert sein:
- a2enmod proxy_wstunnel
- Die Weiterleitung erfolgt mit ws:// oder wss://:
ProxyPass /socket ws://127.0.0.1:3000/socket ProxyPassReverse /socket ws://127.0.0.1:3000/socket
Unterschied ws:// und wss://
- ws:// wird für unverschlüsselte Verbindungen verwendet (wie http)
- wss:// ist die verschlüsselte Variante (wie https)
- Bei HTTPS-Seiten muss wss:// verwendet werden
Fazit
- WebSocket ermöglicht schnelle und effiziente Kommunikation in Echtzeit
- In Apache2 ist dafür die Kombination aus mod_proxy und mod_proxy_wstunnel erforderlich
- Wird häufig mit Backend-Systemen wie Node.js oder Python-Diensten kombiniert