RTCPeerConnection: Methode createAnswer()
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 Methode createAnswer() des Interfaces RTCPeerConnection erstellt eine SDP-Antwort auf ein Angebot, das während der Offer/Answer-Aushandlung einer WebRTC-Verbindung von einem entfernten Peer empfangen wurde.
Die Antwort enthält Informationen über alle Medien, die bereits mit der Sitzung verknüpft sind, über die vom Browser unterstützten Codecs und Optionen sowie über alle bereits gesammelten ICE-Kandidaten.
Die Antwort wird über das zurückgegebene Promise bereitgestellt und sollte anschließend an den Absender des Angebots gesendet werden, um die Aushandlung fortzusetzen.
Syntax
createAnswer()
createAnswer(options)
createAnswer(successCallback, failureCallback) // deprecated
createAnswer(successCallback, failureCallback, options) // deprecated
Parameter
optionsOptional-
Ein optionales Objekt mit den für die Antwort angeforderten Optionen. Derzeit sind keine Optionen verfügbar.
Veraltete Parameter
In älterem Code und älterer Dokumentation finden Sie möglicherweise eine Callback-basierte Version dieser Funktion.
Diese ist veraltet, und von ihrer Verwendung wird dringend abgeraten.
Sie sollten vorhandenen Code aktualisieren und stattdessen die auf Promise basierende Version von createAnswer() verwenden.
Die Parameter der älteren Form von createAnswer() werden im Folgenden beschrieben, um die Aktualisierung vorhandenen Codes zu erleichtern.
successCallback-
Eine Callback-Funktion, der ein einzelnes
RTCSessionDescription-Objekt übergeben wird, das die neu erstellte Antwort beschreibt. failureCallback-
Eine Callback-Funktion, der ein einzelnes
DOMException-Objekt übergeben wird, das erklärt, warum die Erstellung einer Antwort fehlgeschlagen ist. optionsOptional-
Ein optionales Objekt mit den für die Antwort angeforderten Optionen.
Ausnahmen
NotReadableErrorDOMException-
Der Identitätsanbieter konnte keine Identitätsbestätigung bereitstellen.
OperationErrorDOMException-
Die Erstellung des SDP ist aus einem nicht näher bestimmten Grund fehlgeschlagen. Dies ist eine allgemeine Ausnahme für Fehler, die keiner spezifischeren Kategorie zugeordnet werden können.
Rückgabewert
Ein Promise, das mit einem Objekt erfüllt wird, das dieselben Eigenschaften wie ein RTCSessionDescription-Objekt enthält:
Beispiele
Der folgende Codeausschnitt stammt aus dem Code zum Artikel Signalisierung und Videoanrufe. Er stammt aus dem Handler für die Nachricht, mit der ein Angebot über den Signalisierungskanal an einen anderen Peer gesendet wird.
Hinweis:
Beachten Sie, dass dies Teil des Signalisierungsprozesses ist. Die dafür verwendete Transportschicht ist ein Implementierungsdetail, über das Sie selbst entscheiden.
In diesem Fall wird eine WebSocket-Verbindung verwendet, um eine JSON-Nachricht mit einem type-Feld mit dem Wert „video-answer“ an den anderen Peer zu senden. Die Nachricht enthält die Antwort für das Gerät, das das Verbindungsangebot gesendet hat.
Der Inhalt des an die Funktion sendToServer() übergebenen Objekts hängt ebenso wie der übrige Code im Handler für die Erfüllung des Promise vollständig von Ihrer Implementierung ab.
pc.createAnswer()
.then((answer) => pc.setLocalDescription(answer))
.then(() => {
// Send the answer to the remote peer through the signaling server.
})
.catch(handleGetUserMediaError);
Damit wird RTCPeerConnection aufgefordert, eine neue Antwort zu erstellen und zurückzugeben.
In unserem Promise-Handler wird die zurückgegebene Antwort durch einen Aufruf von setLocalDescription() als Beschreibung der lokalen Seite der Verbindung festgelegt.
Sobald dies erfolgreich war, wird die Antwort über ein Protokoll Ihrer Wahl an den Signalisierungsserver gesendet.
Mit Promise.catch() werden Fehler abgefangen und behandelt.
Den vollständigen Code, aus dem dieser Ausschnitt stammt, finden Sie unter Die Einladung verarbeiten in unserem WebRTC-Chatbeispiel. Er hilft Ihnen, den Signalisierungsprozess und die Funktionsweise von Antworten zu verstehen.
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcpeerconnection-createanswer> |