RTCPeerConnection: signalingState-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Die schreibgeschützte signalingState
-Eigenschaft der RTCPeerConnection
-Schnittstelle gibt einen Zeichenfolgenwert zurück, der den Zustand des Signalisierungsprozesses am lokalen Ende der Verbindung während der Verbindung oder Wiederverbindung mit einem anderen Peer beschreibt.
Siehe Signaling auf unserer WebRTC-Sitzungslebensdauer-Seite.
Da der Signalisierungsprozess eine Zustandsmaschine ist, kann die Überprüfung, ob Ihr Code sich im erwarteten Zustand befindet, wenn Nachrichten eintreffen, helfen, unerwartete und vermeidbare Fehler zu vermeiden.
Wenn Sie beispielsweise eine Antwort erhalten, während der signalingState
nicht "have-local-offer"
ist, wissen Sie, dass etwas nicht stimmt, da Sie nur Antworten erhalten sollten, nachdem Sie ein Angebot erstellt, aber bevor eine Antwort empfangen und in RTCPeerConnection.setLocalDescription()
übergeben wurde. Ihr Code wird zuverlässiger, wenn Sie auf nicht übereinstimmende Zustände achten und diese elegant behandeln.
Dieser Wert kann auch während des Debuggens nützlich sein.
Zusätzlich wird ein signalingstatechange
-Ereignis an die RTCPeerConnection
-Instanz gesendet, wenn sich der Wert dieser Eigenschaft ändert.
Wert
Die erlaubten Zeichenfolgenwerte sind:
stable
-
Es gibt keinen laufenden Austausch von Angebot und Antwort. Dies kann bedeuten, dass das
RTCPeerConnection
-Objekt neu ist, in diesem Fall sind sowohl dielocalDescription
als auch dieremoteDescription
null
; es kann auch bedeuten, dass die Verhandlung abgeschlossen und eine Verbindung hergestellt wurde. have-local-offer
-
Der lokale Peer hat
RTCPeerConnection.setLocalDescription()
aufgerufen und SDP, das ein Angebot darstellt (normalerweise durch Aufrufen vonRTCPeerConnection.createOffer()
erstellt), übergeben, und das Angebot wurde erfolgreich angewendet. have-remote-offer
-
Der Remote-Peer hat ein Angebot erstellt und es über den Signalisierungsserver an den lokalen Peer übermittelt, der das Angebot als Remote-Beschreibung festgelegt hat, indem er
RTCPeerConnection.setRemoteDescription()
aufgerufen hat. have-local-pranswer
-
Das vom Remote-Peer gesendete Angebot wurde angewendet und eine Antwort wurde erstellt (normalerweise durch Aufrufen von
RTCPeerConnection.createAnswer()
) und durch Aufrufen vonRTCPeerConnection.setLocalDescription()
angewendet. Diese vorläufige Antwort beschreibt die unterstützten Medienformate und dergleichen, enthält jedoch möglicherweise noch nicht alle ICE-Kandidaten. Weitere Kandidaten werden später separat geliefert. have-remote-pranswer
-
Eine vorläufige Antwort wurde empfangen und erfolgreich angewendet als Antwort auf ein zuvor gesendetes und durch Aufrufen von
setLocalDescription()
etabliertes Angebot. closed
-
Die
RTCPeerConnection
wurde geschlossen.
Beispiele
const pc = new RTCPeerConnection(configuration);
const state = pc.signalingState;
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-peerconnection-signaling-state |
Browser-Kompatibilität
BCD tables only load in the browser