RTCSessionDescription
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 RTCSessionDescription
-Schnittstelle beschreibt eine Seite einer Verbindung oder potenziellen Verbindung und wie diese konfiguriert ist. Jede RTCSessionDescription
besteht aus einem Beschreibungs-type
, der angibt, welchen Teil des Angebot/Ablehnungs-Negotiationsprozesses sie beschreibt, und aus dem SDP-Descriptor der Sitzung.
Der Prozess der Verhandlung einer Verbindung zwischen zwei Peers beinhaltet den Austausch von RTCSessionDescription
-Objekten, wobei jede Beschreibung eine Kombination von Verbindungskonfigurationsoptionen vorschlägt, die der Sender der Beschreibung unterstützt. Sobald die beiden Peers sich auf eine Konfiguration für die Verbindung geeinigt haben, ist die Verhandlung abgeschlossen.
Konstruktor
RTCSessionDescription()
Veraltet-
Erstellt eine neue
RTCSessionDescription
, indem dertype
undsdp
spezifiziert werden. Alle Methoden, dieRTCSessionDescription
-Objekte akzeptieren, akzeptieren auch Objekte mit denselben Eigenschaften, sodass Sie ein einfaches Objekt anstelle der Erstellung einerRTCSessionDescription
-Instanz verwenden können.
Instanzeigenschaften
Die RTCSessionDescription
-Schnittstelle erbt keine Eigenschaften.
RTCSessionDescription.type
Schreibgeschützt-
Ein Enum, das den Typ der Sitzungsbeschreibung beschreibt.
RTCSessionDescription.sdp
Schreibgeschützt-
Ein String, der die Sitzung mit SDP beschreibt.
Instanzmethoden
Die RTCSessionDescription
erbt keine Methoden.
RTCSessionDescription.toJSON()
-
Gibt eine JSON-Beschreibung des Objekts zurück. Die Werte beider Eigenschaften,
type
undsdp
, sind im erzeugten JSON enthalten.
Beispiel
signalingChannel.onmessage = (evt) => {
if (!pc) start(false);
const message = JSON.parse(evt.data);
if (message.type && message.sdp) {
pc.setRemoteDescription(
new RTCSessionDescription(message),
() => {
// if we received an offer, we need to answer
if (pc.remoteDescription.type === "offer") {
pc.createAnswer(localDescCreated, logError);
}
},
logError,
);
} else {
pc.addIceCandidate(
new RTCIceCandidate(message.candidate),
() => {},
logError,
);
}
};
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # rtcsessiondescription-class |
Browser-Kompatibilität
BCD tables only load in the browser