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 RTCSessionDescription-Schnittstelle beschreibt ein Ende einer Verbindung – oder einer potenziellen Verbindung – und wie diese konfiguriert ist. Jede RTCSessionDescription besteht aus einem Beschreibungs-type-Parameter, der angibt, welchen Teil des Angebots-/Antwortverhandlungsprozesses sie beschreibt, und aus dem SDP-Descriptor der Sitzung.
Der Prozess der Aushandlung einer Verbindung zwischen zwei Peers beinhaltet den Austausch von RTCSessionDescription-Objekten, wobei jede Beschreibung eine Kombination von Verbindungskonfigurationsoptionen vorschlägt, die der Absender der Beschreibung unterstützt. Sobald sich die beiden Peers auf eine Konfiguration der Verbindung geeinigt haben, ist die Verhandlung abgeschlossen.
Konstruktor
RTCSessionDescription()-
Erstellt eine neue
RTCSessionDescription, indem dertypeundsdpangegeben werden. Alle Methoden, dieRTCSessionDescription-Objekte akzeptieren, akzeptieren auch Objekte mit denselben Eigenschaften, sodass Sie statt der Erstellung einerRTCSessionDescription-Instanz ein einfaches Objekt verwenden können.
Instanzeigenschaften
Die RTCSessionDescription-Schnittstelle erbt keine Eigenschaften.
RTCSessionDescription.typeSchreibgeschützt-
Ein Enum, das den Typ der Sitzungsbeschreibung beschreibt.
RTCSessionDescription.sdpSchreibgeschützt-
Ein String, der die SDP beschreibt, die die Sitzung beschreibt.
Instanzmethoden
Die RTCSessionDescription-Schnittstelle erbt keine Methoden.
RTCSessionDescription.toJSON()-
Gibt eine JSON-Beschreibung des Objekts zurück. Die Werte beider Eigenschaften,
typeundsdp, sind im generierten 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
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # rtcsessiondescription-class> |