Was ist WebSocket?
WebSocket ist ein Kommunikationsprotokoll, das eine persistente, bidirektionale Verbindung zwischen einem Client (z.B. Browser) und einem Server herstellt. Im Gegensatz zu HTTP, wo der Client immer die Initiative ergreifen muss, können bei WebSocket beide Seiten jederzeit Nachrichten senden.
WebSocket vs. HTTP
| Eigenschaft | HTTP | WebSocket |
|---|---|---|
| Verbindung | Request-Response, kurzlebig | Persistent, dauerhaft offen |
| Richtung | Client → Server | Bidirektional |
| Overhead | Header bei jeder Anfrage | Minimaler Overhead nach Handshake |
| Latenz | Höher (Polling nötig) | Sehr niedrig |
| Einsatz | Websites, REST-APIs | Echtzeit-Daten, Live-Updates |
Funktionsweise
- Handshake: Client sendet HTTP-Upgrade-Anfrage
- Upgrade: Server akzeptiert und wechselt zum WebSocket-Protokoll
- Kommunikation: Beide Seiten senden und empfangen Nachrichten frei
- Close: Eine Seite schließt die Verbindung
Einsatzgebiete
- Web-HMIs: Echtzeit-Darstellung von Maschinendaten in browserbasiertem HMI
- IoT-Dashboards: Live-Visualisierung von Sensordaten im Browser
- Chat-Anwendungen: Sofortige Nachrichtenübermittlung
- Kollaboration: Google Docs-ähnliche Echtzeit-Zusammenarbeit
- Monitoring: Live-Überwachung von Servern und Infrastruktur
Sicherheit
- WSS (WebSocket Secure): Verschlüsselte WebSocket-Verbindung über TLS
- Origin-Prüfung: Server validiert, von welcher Domain die Verbindung stammt
- Authentifizierung: Token-basierte Authentifizierung beim Handshake
Vorteile
- Echtzeit: Daten werden sofort ausgeliefert, ohne Verzögerung
- Effizienz: Weniger Netzwerk-Overhead als wiederholtes HTTP-Polling
- Bidirektional: Server kann proaktiv Daten senden
- Weit unterstützt: Von allen modernen Browsern und Frameworks unterstützt
