RTCSessionDescription
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.
Die Schnittstelle RTCSessionDescription beschreibt eine Seite einer Verbindung – oder einer möglichen Verbindung – und ihre Konfiguration. Jede RTCSessionDescription besteht aus einem type, der angibt, welchen Teil des Offer/Answer-Aushandlungsprozesses sie beschreibt, und einem SDP-Deskriptor der Sitzung.
Bei der Aushandlung einer Verbindung zwischen zwei Peers werden RTCSessionDescription-Objekte ausgetauscht. Jede Beschreibung schlägt dabei eine Kombination von Konfigurationsoptionen für die Verbindung vor, die der Absender unterstützt. Sobald sich die beiden Peers auf eine Konfiguration für die Verbindung geeinigt haben, ist die Aushandlung abgeschlossen.
Konstruktor
RTCSessionDescription()-
Erstellt eine neue
RTCSessionDescriptiondurch Angabe vontypeundsdp. Alle Methoden, dieRTCSessionDescription-Objekte akzeptieren, akzeptieren auch Objekte mit denselben Eigenschaften. Daher können Sie statt einerRTCSessionDescription-Instanz ein einfaches Objekt verwenden.
Instanzeigenschaften
Die Schnittstelle RTCSessionDescription erbt keine Eigenschaften.
RTCSessionDescription.typeSchreibgeschützt-
Ein Enum, das den Typ der Sitzungsbeschreibung angibt.
RTCSessionDescription.sdpSchreibgeschützt-
Eine Zeichenfolge mit dem SDP, das die Sitzung beschreibt.
Instanzmethoden
Die Schnittstelle RTCSessionDescription erbt keine Methoden.
RTCSessionDescription.toJSON()-
Gibt ein JSON-serialisierbares einfaches Objekt zurück, das das
RTCSessionDescription-Objekt repräsentiert. Wird vonJSON.stringify()automatisch aufgerufen.
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
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # rtcsessiondescription-class> |