RTCDataChannel: readyState Eigenschaft
Die schreibgeschützte RTCDataChannel
-Eigenschaft readyState
gibt einen String zurück, der den Zustand der zugrunde liegenden Datenverbindung des Datenkanals angibt.
Werte
Ein String, der den aktuellen Zustand des zugrunde liegenden Datentransports angibt und einen der folgenden Werte hat:
connecting
-
Der User-Agent (Browser) ist dabei, den zugrunde liegenden Datentransport zu erstellen; dies ist der Zustand eines neuen
RTCDataChannel
nachdem es durchRTCPeerConnection.createDataChannel()
erstellt wurde, auf dem Peer, der den Verbindungsprozess gestartet hat. open
-
Der zugrunde liegende Datentransport wurde hergestellt und Daten können bidirektional darüber übertragen werden. Dies ist der Standardzustand eines neuen
RTCDataChannel
, das von der WebRTC-Schicht erstellt wurde, wenn der entfernte Peer den Kanal erstellt und ihn der Site oder App in einemdatachannel
Ereignis zugestellt hat. closing
-
Der Prozess des Schließens des zugrunde liegenden Datentransports hat begonnen. Es ist nicht mehr möglich, neue Nachrichten zum Senden in die Warteschlange zu stellen, aber zuvor in die Warteschlange gestellte Nachrichten können möglicherweise noch gesendet oder empfangen werden, bevor der
closed
Zustand eintritt. closed
-
Der zugrunde liegende Datentransport wurde geschlossen, oder der Versuch, die Verbindung herzustellen, ist fehlgeschlagen.
Beispiel
const dataChannel = peerConnection.createDataChannel("File Transfer");
const sendQueue = [];
function sendMessage(msg) {
switch (dataChannel.readyState) {
case "connecting":
console.log(`Connection not open; queueing: ${msg}`);
sendQueue.push(msg);
break;
case "open":
sendQueue.forEach((msg) => dataChannel.send(msg));
break;
case "closing":
console.log(`Attempted to send message while closing: ${msg}`);
break;
case "closed":
console.log("Error! Attempt to send while connection closed.");
break;
}
}
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-datachannel-readystate |
Browser-Kompatibilität
BCD tables only load in the browser