Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
WebSocketStream
Experimentell:Dies ist eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DasWebSocketStream-Interface derWebSockets-API ist eine versprechenbasierte API zum Verbinden mit einem WebSocket-Server. Es verwendetStreams, um Daten über die Verbindung zu senden und zu empfangen, und kann daher automatisch von der Stream-Gegenstromkontrolle profitieren, die die Geschwindigkeit des Lesens oder Schreibens reguliert, um Engpässe in der Anwendung zu vermeiden.
In diesem Artikel
Konstruktor
WebSocketStream()ExperimentellErstellt eine neue Instanz des
WebSocketStream-Objekts.
Instanz-Eigenschaften
urlSchreibgeschütztExperimentellGibt die URL des WebSocket-Servers zurück, mit dem die
WebSocketStream-Instanz erstellt wurde.closedSchreibgeschütztExperimentellGibt ein
Promisezurück, das mit einem Objekt erfüllt wird, sobald die Socket-Verbindung geschlossen ist. Das Objekt enthält den Schließscode und den Grund, wie er vom Server gesendet wurde.openedSchreibgeschütztExperimentellGibt ein
Promisezurück, das mit einem Objekt erfüllt wird, sobald die Socket-Verbindung erfolgreich geöffnet wurde. Unter anderem enthält dieses Objekt eine Instanz vonReadableStreamundWritableStreamzum Empfangen und Senden von Daten über die Verbindung.
Instanz-Methoden
close()ExperimentellSchließt die WebSocket-Verbindung.
Beispiele
const output = document.querySelector("#output");function writeToScreen(message) { const pElem = document.createElement("p"); pElem.textContent = message; output.appendChild(pElem);}if (!("WebSocketStream" in self)) { writeToScreen("Your browser does not support WebSocketStream");} else { const wsURL = "ws://127.0.0.1/"; const wss = new WebSocketStream(wsURL); console.log(wss.url); async function start() { const { readable, writable, extensions, protocol } = await wss.opened; writeToScreen("CONNECTED"); closeBtn.disabled = false; const reader = readable.getReader(); const writer = writable.getWriter(); writer.write("ping"); writeToScreen("SENT: ping"); while (true) { const { value, done } = await reader.read(); writeToScreen(`RECEIVED: ${value}`); if (done) { break; } setTimeout(() => { writer.write("ping"); writeToScreen("SENT: ping"); }, 5000); } } start();}Sehen SieUsing WebSocketStream to write a client für ein vollständiges Beispiel mit umfassender Erklärung.
Spezifikationen
Derzeit nicht Teil irgendeiner Spezifikation. Siehehttps://github.com/whatwg/websockets/pull/48 für den Standardisierungsfortschritt.
Browser-Kompatibilität
Siehe auch
- WebSocketStream: integrating streams with the WebSocket API, developer.chrome.com (2020)