[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/API/WebSockets_API [Back]  [Original]

WebSocket API (WebSockets) - Web-APIs | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

WebSocket API (WebSockets)

Hinweis: Diese Funktion ist in Web Workers verfgbar.

Die WebSocket API ermglicht es, eine bidirektionale interaktive Kommunikationssitzung zwischen dem Browser des Benutzers und einem Server zu erffnen. Mit dieser API knnen Sie Nachrichten an einen Server senden und Antworten erhalten, ohne den Server auf eine Antwort abfragen zu mssen.

Die WebSocket API bietet zwei alternative Mechanismen zum Erstellen und Verwenden von Websocket-Verbindungen: die WebSocket-Schnittstelle und die WebSocketStream-Schnittstelle.

  • Die WebSocket-Schnittstelle ist stabil und wird von Browsern und Servern gut untersttzt. Sie untersttzt jedoch keinen backpressure. Infolgedessen knnen, wenn Nachrichten schneller eintreffen, als die Anwendung sie verarbeiten kann, entweder der Arbeitsspeicher des Gerts durch die Pufferung dieser Nachrichten gefllt werden, die Anwendung aufgrund einer 100%igen CPU-Auslastung nicht mehr reagieren oder beides eintreten.
  • Die WebSocketStream-Schnittstelle ist eine Promise-basierte Alternative zu WebSocket. Sie verwendet die Streams API zum Empfangen und Senden von Nachrichten, was bedeutet, dass Socket-Verbindungen automatisch von der Stream-Backpressure profitieren und die Geschwindigkeit des Lesens oder Schreibens regulieren knnen, um Engpsse in der Anwendung zu vermeiden. WebSocketStream ist jedoch nicht standardisiert und wird zurzeit nur von einer Rendering-Engine untersttzt.

Darber hinaus wird erwartet, dass die WebTransport API die WebSocket API fr viele Anwendungen ersetzt. WebTransport ist eine vielseitige, niedrigschwellige API, die Backpressure und viele andere Funktionen bietet, die weder von WebSocket noch von WebSocketStream untersttzt werden, wie unidirektionale Streams, nicht sequenzielle Lieferung und unzuverlssige Datenbertragung ber Datagramme. WebTransport ist komplexer zu verwenden als WebSockets, und die Untersttzung in verschiedenen Browsern ist nicht so verbreitet, erlaubt jedoch die Implementierung anspruchsvoller Lsungen. Falls Standard-WebSocket-Verbindungen gut fr Ihren Anwendungsfall geeignet sind und Sie eine breite Browser-Kompatibilitt bentigen, sollten Sie die WebSockets API verwenden, um schnell in Gang zu kommen. Wenn Ihre Anwendung jedoch eine nicht standardmige benutzerdefinierte Lsung erfordert, sollten Sie die WebTransport API verwenden.

Hinweis: Wenn eine Seite eine offene WebSocket-Verbindung hat, kann der Browser sie mglicherweise nicht zum bfcache hinzufgen. Es ist daher eine gute Praxis, die Verbindung zu schlieen, wenn der Benutzer die Seite beendet hat. Siehe Arbeiten mit dem bfcache.

In diesem Artikel

Schnittstellen

WebSocket

Die primre Schnittstelle zum Herstellen einer Verbindung zu einem WebSocket-Server und zum Senden und Empfangen von Daten ber die Verbindung.

WebSocketStream

Promise-basierte Schnittstelle zum Herstellen einer Verbindung zu einem WebSocket-Server; verwendet Streams, um Daten ber die Verbindung zu senden und zu empfangen.

CloseEvent

Das von dem WebSocket-Objekt gesendete Ereignis, wenn die Verbindung geschlossen wird.

MessageEvent

Das von dem WebSocket-Objekt gesendete Ereignis, wenn vom Server eine Nachricht empfangen wird.

Zugehrige HTTP-Header

Die HTTP-Header werden im WebSocket-Handshake verwendet:

Sec-WebSocket-Key

Ein HTTP-Anforderungsheader, der ein nonce vom Client enthlt. Dies wird im WebSocket-ffnungshandshake verwendet, um zu berprfen, dass der Client ausdrcklich beabsichtigt, eine WebSocket-Verbindung zu ffnen. Es wird automatisch vom Browser hinzugefgt.

Sec-WebSocket-Accept

Ein HTTP-Antwortheader, der im WebSocket-ffnungshandshake verwendet wird, um anzuzeigen, dass der Server bereit ist, zu einer WebSocket-Verbindung zu wechseln. Der Wert in der Direktive wird aus dem Wert von Sec-WebSocket-Key in der entsprechenden Anforderung berechnet.

Sec-WebSocket-Version

Ein HTTP-Header, der in Anforderungen die vom Client verstandene Version des WebSocket-Protokolls angibt. In Antworten wird er nur gesendet, wenn die angeforderte Protokollversion vom Server nicht untersttzt wird, und listet die vom Server untersttzten Versionen auf.

Sec-WebSocket-Protocol

Ein HTTP-Header, der in Anforderungen die vom Client untersttzten Subprotokolle in bevorzugter Reihenfolge angibt. In Antworten gibt er das vom Server aus den Prferenzen des Clients ausgewhlte Subprotokoll an.

Sec-WebSocket-Extensions

Ein HTTP-Header, der in Anforderungen die vom Client untersttzten WebSocket-Erweiterungen in bevorzugter Reihenfolge angibt. In Antworten gibt er die vom Server aus den Prferenzen des Clients ausgewhlte Erweiterung an.

Leitfden

Werkzeuge

  • AsyncAPI: Eine Spezifikation zum Beschreiben ereignisgesteuerter Architekturen basierend auf Protokollen wie WebSocket. Sie knnen es verwenden, um auf WebSockets basierende APIs zu beschreiben, genau so wie Sie REST-APIs mit der OpenAPI-Spezifikation beschreiben wrden. Erfahren Sie warum Sie in Betracht ziehen sollten, AsyncAPI mit WebSocket zu verwenden und wie Sie dies tun knnen.
  • WebSockets: Hoch skalierbare WebSocket-Server- und Client-Implementierung fr C++11 und Node.js.
  • Socket.IO: Ein auf Langzeitabfrage/WebSocket basierendes Drittanbieterbertragungsprotokoll fr Node.js.
  • SocketCluster: Ein Pub/Sub-WebSocket-Framework fr Node.js mit Schwerpunkt auf Skalierbarkeit.
  • WebSocket-Node: Eine WebSocket-Server-API-Implementierung fr Node.js.
  • Total.js: Webanwendungs-Framework fr Node.js (Beispiel: WebSocket-Chat)
  • SignalR: SignalR verwendet WebSockets im Hintergrund, wenn sie verfgbar sind, und fllt auf andere Techniken und Technologien zurck, wenn sie nicht verfgbar sind, whrend Ihr Anwendungscode gleich bleibt.
  • Caddy: Ein Webserver, der in der Lage ist, beliebige Befehle (stdin/stdout) als WebSocket zu proxyen.
  • ws: Eine beliebte WebSocket-Client- & Server-Bibliothek fr Node.js.
  • cowboy: Cowboy ist ein kleiner, schneller und moderner HTTP-Server fr Erlang/OTP mit WebSocket-Untersttzung.
  • ZeroMQ: ZeroMQ ist eine eingebettete Netzwerksbibliothek, die Nachrichten zur Laufzeit bertrgt, darunter IPC, TCP, UDP, TIPC, Multicast und WebSocket.
  • WebSocket King: Ein Client-Tool zur Entwicklung, Prfung und Arbeit mit WebSocket-Servern.
  • PHP WebSocket Server: In PHP geschriebener Server, der Verbindungen ber WebSockets wss:// oder ws:// und normale Sockets ber ssl://, tcp:// handhabt.
  • Django Channels: Django-Bibliothek, die Untersttzung fr WebSockets (und andere Protokolle, die lang laufende asynchrone Verbindungen erfordern) hinzufgt.
  • (Phoenix) Channels: Skalierbare Echtzeitkommunikation mit WebSocket im Elixir Phoenix-Framework.
  • Phoenix LiveView: Echtzeit-interaktive Web-Erlebnisse ber WebSocket im Elixir Phoenix-Framework.
  • Flask-SocketIO: Ermglicht Flask-Anwendungen den Zugriff auf latenzarme bidirektionale Kommunikation zwischen den Clients und dem Server.
  • Gorilla WebSocket: Gorilla WebSocket ist eine Go-Implementierung des WebSocket-Protokolls.

Spezifikationen

Spezifikation
WebSockets
# the-websocket-interface

Browser-Kompatibilitt

api.WebSocket

api.WebSocketStream

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page