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 der type und sdp spezifiziert werden. Alle Methoden, die RTCSessionDescription-Objekte akzeptieren, akzeptieren auch Objekte mit denselben Eigenschaften, sodass Sie ein einfaches Objekt anstelle der Erstellung einer RTCSessionDescription-Instanz verwenden können.

Instanzeigenschaften

Die RTCSessionDescription-Schnittstelle erbt keine Eigenschaften.

RTCSessionDescription.type Nur lesbar

Ein Enum, das den Typ der Sitzungsbeschreibung beschreibt.

RTCSessionDescription.sdp Nur lesbar

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 und sdp, sind im erzeugten JSON enthalten.

Beispiel

js
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

Siehe auch