RTCSessionDescription
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
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 dertypeundsdpspezifiziert 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.typeSchreibgeschützt-
Ein Enum, das den Typ der Sitzungsbeschreibung beschreibt.
RTCSessionDescription.sdpSchreibgeschü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,
typeundsdp, 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
Loading…