Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. The WebSocket API (WebSockets)

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

View in EnglishAlways switch to English

The WebSocket API (WebSockets)

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

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

Die WebSocket-API bietet zwei alternative Mechanismen zum Erstellen und Verwenden von WebSocket-Verbindungen: dasWebSocket-Interface und dasWebSocketStream-Interface.

  • DasWebSocket-Interface ist stabil und hat eine gute Unterstützung in Browsern und auf Servern. Allerdings unterstützt es keinenBackpressure. Daher kann es passieren, dass der Speicher des Geräts mit der Pufferung von Nachrichten gefüllt wird oder das System aufgrund 100%iger CPU-Auslastung unempfänglich wird, wenn Nachrichten schneller ankommen, als die Anwendung sie verarbeiten kann.
  • DasWebSocketStream-Interface ist einePromise-basierte Alternative zuWebSocket. Es verwendet dieStreams-API, um das Empfangen und Senden von Nachrichten zu handhaben, was bedeutet, dass Socket-Verbindungen automatisch von der Stream-Backpressure profitieren können und die Geschwindigkeit des Lesens oder Schreibens regulieren, um Engpässe in der Anwendung zu vermeiden. Allerdings istWebSocketStream nicht standardisiert und derzeit nur in einer Rendering-Engine unterstützt.

Zusätzlich wird erwartet, dass dieWebTransport-API für viele Anwendungen die WebSocket-API 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, unordentliche Lieferung und unzuverlässige Datenübertragung über Datagramme. WebTransport ist komplexer in der Anwendung als WebSockets und die Unterstützung in verschiedenen Browsern ist nicht so breit gefächert, aber sie ermöglicht die Implementierung ausgeklügelter Lösungen. Wenn standardmäßige WebSocket-Verbindungen gut zu Ihrem Anwendungsfall passen und Sie eine breite Browser-Kompatibilität benötigen, sollten Sie die WebSockets-API verwenden, um schnell einsatzbereit zu sein. Wenn Ihre Anwendung jedoch eine nicht standardmäßige, maßgeschneiderte Lösung erfordert, sollten Sie die WebTransport-API nutzen.

Hinweis:Wenn eine Seite eine offene WebSocket-Verbindung hat, kann der Browser diese möglicherweise nicht zumbfcache hinzufügen. Es ist daher eine gute Praxis, die Verbindung zu schließen, wenn der Nutzer mit der Seite fertig ist. SieheArbeiten mit dem bfcache.

Schnittstellen

WebSocket

Das primäre Interface, um sich mit einem WebSocket-Server zu verbinden und Daten über die Verbindung zu senden und zu empfangen.

WebSocketStreamNicht standardisiert

Promise-basiertes Interface zur Verbindung mit einem WebSocket-Server; verwendetStreams 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-Handschlag verwendet:

Sec-WebSocket-Key

Ein HTTP-Anforderungsheader, der einenNonce vom Client enthält. Dieser wird imWebSocket-Eröffnungs-Handschlag verwendet, um zu überprüfen, dass der Client ausdrücklich die Absicht hat, einen WebSocket zu öffnen. Er wird vom Browser automatisch hinzugefügt.

Sec-WebSocket-Accept

Ein HTTP-Antwortheader, der imWebSocket-Eröffnungs-Handschlag verwendet wird, um anzuzeigen, dass der Server bereit ist, auf eine WebSocket-Verbindung zu aktualisieren. Der Wert in der Anweisung wird aus dem Wert vonSec-WebSocket-Key in der entsprechenden Anfrage berechnet.

Sec-WebSocket-Version

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

Sec-WebSocket-Protocol

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

Sec-WebSocket-Extensions

Ein HTTP-Header, der in Anfragen die vom Client in bevorzugter Reihenfolge unterstützten WebSocket-Erweiterungen 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 basierend auf Protokollen wie WebSocket. Sie können es verwenden, um WebSocket-basierte APIs zu beschreiben, genauso wie Sie REST-APIs mit der OpenAPI-Spezifikation beschreiben würden. Erfahren Sie,warum Sie AsyncAPI mit WebSocket verwenden sollten undwie Sie dies tun können.
  • µWebSockets: Hoch skalierbare WebSocket-Server- und Client-Implementierung fürC++11 undNode.js.
  • Socket.IO: Ein auf Long-Polling/WebSocket basierendes Drittprotokoll 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: Web-Anwendungsframework fürNode.js (Beispiel:WebSocket-Chat)
  • SignalR: SignalR verwendet WebSockets im Hintergrund, wenn sie verfügbar sind, und wechselt elegant zu anderen Techniken und Technologien, wenn dies nicht der Fall ist, während Ihr Anwendungscode gleich bleibt.
  • Caddy: Ein Webserver, der beliebige Befehle (stdin/stdout) als WebSocket umleiten kann.
  • ws: eine beliebte WebSocket-Client- und 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 Netzbibliothek, die Nachrichten über In-Prozess, IPC, TCP, UDP, TIPC, Multicast und WebSocket überträgt.
  • WebSocket King: Ein Client-Tool, um die Entwicklung, das Testen und Arbeiten mit WebSocket-Servern zu unterstützen.
  • PHP WebSocket Server: Server, der in PHP geschrieben wurde, um Verbindungen über WebSocketswss:// oderws:// und normale Sockets überssl://,tcp:// zu handhaben.
  • Django Channels: Django-Bibliothek, die Unterstützung für WebSockets (und andere Protokolle, die langfristige asynchrone Verbindungen erfordern) hinzufügt.
  • Phoenix Channels: Skalierbare Echtzeitkommunikation über WebSocket im Elixir-Phoenix-Framework.
  • Phoenix LiveView: Echtzeit interaktive Web-Erlebnisse über WebSocket im Elixir-Phoenix-Framework.
  • Flask-SocketIO: gibt Flask-Anwendungen Zugriff auf latenzarme bidirektionale Kommunikation zwischen Clients und dem Server.
  • 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

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp