Baseline Widely available
Ein WebRTC error
-Ereignis wird an den onerror
-Ereignishandler eines RTCDataChannel
-Objekts gesendet, wenn ein Fehler auf dem Datenkanal auftritt.
Das RTCErrorEvent
-Objekt liefert Details über den aufgetretenen Fehler; siehe diesen Artikel für Einzelheiten.
Dieses Ereignis ist nicht abbrechbar und wird nicht weitergeleitet.
SyntaxVerwenden Sie den Ereignisnamen in Methoden wie addEventListener()
, oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("error", (event) => { })
onerror = (event) => { }
Ereignistyp Ereigniseigenschaften
Neben den unten aufgeführten Eigenschaften sind Eigenschaften der Elternschnittstelle Event
verfügbar.
error
Schreibgeschützt
Ein RTCError
-Objekt, das den aufgetretenen Fehler spezifiziert; dieses Objekt enthält den Typ des aufgetretenen Fehlers sowie Informationen darüber, wo der Fehler aufgetreten ist (wie z. B. welche Zeilennummer im SDP oder welcher SCTP-Ursachencode betroffen war).
// Strings for each of the SCTP cause codes found in RFC
// 4960, section 3.3.10:
// https://datatracker.ietf.org/doc/html/rfc4960#section-3.3.10
const sctpCauseCodes = [
"No SCTP error",
"Invalid stream identifier",
"Missing mandatory parameter",
"Stale cookie error",
"Sender is out of resource (i.e., memory)",
"Unable to resolve address",
"Unrecognized SCTP chunk type received",
"Invalid mandatory parameter",
"Unrecognized parameters",
"No user data (SCTP DATA chunk has no data)",
"Cookie received while shutting down",
"Restart of an association with new addresses",
"User-initiated abort",
"Protocol violation",
];
dc.addEventListener(
"error",
(ev) => {
const err = ev.error;
console.error("WebRTC error: ", err.message);
// Handle specific error detail types
switch (err.errorDetail) {
case "sdp-syntax-error":
console.error(" SDP syntax error in line ", err.sdpLineNumber);
break;
case "idp-load-failure":
console.error(
" Identity provider load failure: HTTP error ",
err.httpRequestStatusCode,
);
break;
case "sctp-failure":
if (err.sctpCauseCode < sctpCauseCodes.length) {
console.error(" SCTP failure: ", err.sctpCauseCode);
} else {
console.error(" Unknown SCTP error");
}
break;
case "dtls-failure":
if (err.receivedAlert) {
console.error(" Received DTLS failure alert: ", err.receivedAlert);
}
if (err.sentAlert) {
console.error(" Sent DTLS failure alert: ", err.receivedAlert);
}
break;
}
// Add source file name and line information
console.error(
" Error in file ",
err.filename,
" at line ",
err.lineNumber,
", column ",
err.columnNumber,
);
},
false,
);
Das empfangene Ereignis liefert Details in einem RTCError
-Objekt namens error
; RTCError
ist eine Erweiterung der DOMException
-Schnittstelle. Der name
des Fehlers ist RTCError
und die message
ist eine vom WebRTC-Schicht spezifizierte Fehlermeldung.
Fehlerinformationen werden mit console.error()
auf die Konsole ausgegeben. Der message
-String wird immer ausgegeben, ebenso wie Informationen über den Namen der Quelldatei, die Zeilennummer und die Spaltennummer, an der der Fehler auftrat.
Je nach Wert von errorDetail
können jedoch zusätzliche Informationen ausgegeben werden. Jeder Fehlertyp hat einen unterschiedlichen Satz von ausgegebenen Informationen. Ein SDP-Syntaxfehler zeigt beispielsweise die Zeilennummer des Fehlers im SDP an, und ein SCTP-Fehler zeigt eine Nachricht entsprechend dem SCTP-Ursachencode an. Andere Fehlertypen geben ebenfalls geeignete Informationen aus.
Sie können auch einen Ereignishandler für error
-Ereignisse mithilfe der onerror
-Ereignishandler-Eigenschaft der RTCDataChannel
-Schnittstelle einrichten:
dc.onerror = (ev) => {
const err = ev.error;
// â¦
};
Hinweis: Da RTCError
nicht zu den veralteten Fehlern gehört, ist der Wert von RTCError.code
immer 0.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4