Eine WebSocket-API ist eine Programmierschnittstelle, die eine dauerhaft offene Verbindung zwischen Browser und Server nutzt. Über diese Verbindung können beide Seiten jederzeit Nachrichten schicken, ohne dass der Browser jedes Mal neu fragen muss.
- WebSocket-API
Eine Schnittstelle über das WebSocket-Protokoll, die eine Verbindung offen hält und Nachrichten in beide Richtungen in Echtzeit überträgt.
Beispiel: „Der Live-Chat auf der Website läuft über eine WebSocket-API, neue Nachrichten erscheinen ohne Neuladen.“Auch: WebSocket, das Protokoll selbst, 2011 als RFC 6455 festgeschrieben. Die Adressen beginnen mit ws:// oder verschlüsselt mit wss://.
Abgrenzung zum Polling: Beim Polling fragt der Browser in festen Abständen nach Neuigkeiten. Bei WebSockets meldet der Server sie von sich aus.
Wie eine WebSocket-Verbindung entsteht
Sie beginnt als gewöhnliche HTTP-Anfrage mit der Bitte, das Protokoll zu wechseln. Stimmt der Server zu, bleibt die Verbindung offen und wird für kleine Nachrichten in beide Richtungen genutzt, bis eine Seite sie schließt.
Im Browser steht dafür ein eingebautes Objekt bereit, auf dem Server braucht es eine Anwendung, die viele offene Verbindungen gleichzeitig halten kann.
Wofür eine WebSocket-API eingesetzt wird
Für alles, was sich in Echtzeit ändern muss: Chats, gemeinsames Bearbeiten von Dokumenten, Börsenkurse, Spielstände, Benachrichtigungen in Webanwendungen und Dashboards, die Messwerte live zeigen.
In Laravel gibt es dafür Reverb, einen eigenen WebSocket-Server, und mit Broadcasting einen Weg, Ereignisse aus der Anwendung direkt an die Browser zu schicken.
Was WebSockets vom Betrieb verlangen
Mehr als eine gewöhnliche Website. Jede offene Verbindung belegt Ressourcen auf dem Server, Proxys und Load Balancer müssen das Protokoll durchreichen, und abgerissene Verbindungen müssen sich selbst wieder aufbauen.
Für Neuigkeiten, die nur alle paar Minuten anfallen, reicht deshalb oft einfaches Polling oder ein Webhook im Hintergrund.