Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Experiment: Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.

The WebSocket API (WebSockets)

DieWebSocket-API ermöglicht es, eine bidirektionale interaktive Kommunikationssitzung zwischen dem Browser des Nutzers und einem Server zu öffnen. Mit dieser API können Sie Nachrichten an einen Server senden und Antworten empfangen, ohne den Server ständig abfragen zu müssen.

Die WebSocket-API bietet zwei alternative Mechanismen zum Erstellen und Verwenden von WebSocket-Verbindungen: dieWebSocket-Schnittstelle und dieWebSocketStream-Schnittstelle.

  • DieWebSocket-Schnittstelle ist stabil und hat eine gute Unterstützung durch Browser und Server. Sie unterstützt jedoch keinBackpressure. Dadurch kann es vorkommen, dass bei schnellerem Nachrichtenempfang, als die Anwendung verarbeiten kann, der Speicher des Geräts stark gefüllt wird, die Anwendung aufgrund von 100% CPU-Auslastung nicht mehr reagiert oder beides geschieht.
  • DieWebSocketStream-Schnittstelle ist einePromise-basierte Alternative zuWebSocket. Sie verwendet dieStreams API, um den Versand und Empfang von Nachrichten zu verwalten, wodurch WebSocket-Verbindungen automatisch von der Stream-Backpressure profitieren können. Dies reguliert die Lese- oder Schreibgeschwindigkeit, um Engpässe in der Anwendung zu vermeiden. Allerdings istWebSocketStream nicht standardisiert und wird derzeit lediglich von einer Rendering-Engine unterstützt.

Zusätzlich ist zu erwarten, dass dieWebTransport-API die WebSocket-API für viele Anwendungen ersetzen wird. WebTransport ist eine vielseitige, niedrigstufige API, die Backpressure und viele andere Funktionen bietet, die weder vonWebSocket noch vonWebSocketStream unterstützt werden – wie unidirektionale Streams, nicht in der richtigen Reihenfolge gelieferte Übertragungen und unzuverlässige Datenübertragung via Datagramme. WebTransport ist komplexer zu verwenden als WebSockets und hat keine so breite plattformübergreifende Unterstützung, ermöglicht jedoch die Implementierung anspruchsvoller Lösungen. Wenn standardisierte WebSocket-Verbindungen gut zu Ihrem Anwendungsfall passen und Sie breite Browser-Kompatibilität benötigen, sollten Sie die WebSocket-API nutzen, um schnell eine Lösung zu implementieren. Wenn Ihre Anwendung jedoch eine nicht standardisierte, individuelle Lösung erfordert, sollten Sie die WebTransport-API verwenden.

Hinweis:Eine WebSocket-Verbindung ist funktional ähnlich zu standardmäßigen Unix-Sockets, sie sind jedoch nicht miteinander verwandt.

Schnittstellen

WebSocket

Die primäre Schnittstelle zur Verbindung mit einem WebSocket-Server sowie zum Versenden und Empfangen von Daten über die Verbindung.

WebSocketStreamNicht standardisiert

Promise-basierte Schnittstelle zur Verbindung mit einem WebSocket-Server; nutztStreams zum Senden und Empfangen von Daten über die Verbindung.

CloseEvent

Das Ereignis, das vom WebSocket-Objekt gesendet wird, wenn die Verbindung geschlossen wird.

MessageEvent

Das Ereignis, das vom WebSocket-Objekt gesendet wird, wenn eine Nachricht vom Server empfangen wird.

Verwandte HTTP-Header

Die HTTP-Header werden imWebSocket-Handshake verwendet:

Sec-WebSocket-Key

Ein HTTP-Anforderungs-Header, der einen Nonce des Clients enthält.Dieser wird imWebSocket-Eröffnungshandshake verwendet, um zu überprüfen, dass der Client die Eröffnung einer WebSocket ausdrücklich beabsichtigt.Der Header wird automatisch vom Browser hinzugefügt.

Sec-WebSocket-Accept

Ein HTTP-Antwort-Header, der imWebSocket-Eröffnungshandshake verwendet wird, um anzuzeigen, dass der Server bereit ist, auf eine WebSocket-Verbindung hochzustufen.Der Wert in der Direktive wird aus dem Wert vonSec-WebSocket-Key in der entsprechenden Anfrage berechnet.

Sec-WebSocket-Version

Ein HTTP-Header, der in Anfragen die vom Client unterstützte Version des WebSocket-Protokolls angibt.In Antworten wird er nur gesendet, wenn die angeforderte Protokollversion vom Server nicht unterstützt wird, und listet die vom Server unterstützten Versionen auf.

Sec-WebSocket-Protocol

Ein HTTP-Header, der in Anfragen die vom Client unterstützten Subprotokolle in bevorzugter Reihenfolge angibt.In Antworten gibt er das vom Server aus den Präferenzen des Clients ausgewählte Subprotokoll an.

Sec-WebSocket-Extensions

Ein HTTP-Header, der in Anfragen die vom Client unterstützten WebSocket-Erweiterungen in bevorzugter Reihenfolge angibt.In Antworten gibt er die vom Server aus den Präferenzen des Clients ausgewählte Erweiterung an.

Leitfäden

Werkzeuge

  • AsyncAPI: Eine Spezifikation zur Beschreibung ereignisgesteuerter Architekturen auf Basis von Protokollen wie WebSocket. Sie können es verwenden, um WebSocket-basierte APIs zu beschreiben, ähnlich wie REST-APIs mit der OpenAPI-Spezifikation beschrieben werden. Erfahren Siewarum Sie AsyncAPI mit WebSocket verwenden sollten undwie Sie es tun.
  • µWebSockets: Hoch skalierbare Implementierung von WebSocket-Server und -Client fürC++11 undNode.js.
  • Socket.IO: Ein Long-Polling/WebSocket-basiertes, Drittanbieter-Übertragungsprotokoll fürNode.js.
  • SocketCluster: Ein Pub/Sub-WebSocket-Framework fürNode.js mit Schwerpunkt auf Skalierbarkeit.
  • WebSocket-Node: Eine WebSocket-Server-API-Implementierung fürNode.js.
  • Total.js: Webanwendungs-Framework fürNode.js (Beispiel:WebSocket-Chat)
  • SignalR: SignalR verwendet WebSockets, wenn diese verfügbar sind, und greift nahtlos auf andere Techniken und Technologien zurück, wenn dies nicht der Fall ist, während Ihr Anwendungscode unverändert bleibt.
  • Caddy: Ein Webserver, der beliebige Kommandos (stdin/stdout) als WebSocket weiterleiten kann.
  • ws: Eine beliebte WebSocket-Client-&-Server-Bibliothek fürNode.js.
  • cowboy: Cowboy ist ein kleiner, schneller und moderner HTTP-Server für Erlang/OTP mit WebSocket-Unterstützung.
  • ZeroMQ: ZeroMQ ist eine einbettbare Netzwerklibrary, die Nachrichten über In-Prozess, IPC, TCP, UDP, TIPC, Multicast und WebSocket überträgt.
  • WebSocket King: Ein Client-Tool zur Entwicklung, zum Testen und zur Arbeit mit WebSocket-Servern.
  • PHP WebSocket Server: Server geschrieben in PHP für die Verbindung über WebSocketswss:// oderws:// sowie normale Sockets überssl://,tcp://.
  • Django Channels: Django-Bibliothek mit Unterstützung für WebSockets (und andere Protokolle, die lang laufende asynchrone Verbindungen erfordern).
  • (Phoenix) Channels: Skalierbare Echtzeit-Kommunikation mit WebSocket im Phoenix-Framework von Elixir.
  • Phoenix LiveView: Interaktive Echtzeit-Weberlebnisse via WebSocket im Phoenix-Framework von Elixir.
  • Flask-SocketIO: Erlaubt Flask-Anwendungen, niedrig-latenzige bidirektionale Kommunikation zwischen dem Client und dem Server zu nutzen.
  • Gorilla WebSocket: Gorilla WebSocket ist eineGo-Implementierung des WebSocket-Protokolls.

Spezifikationen

Specification
WebSockets
# the-websocket-interface

Browser-Kompatibilität

api.WebSocket

api.WebSocketStream

Siehe auch

MDN-Feedback-Box

Diese Seite wurde automatisch aus dem Englischen übersetzt.


[8]ページ先頭

©2009-2025 Movatter.jp