Fehlerbehandlung im IVS Web Broadcast SDK | Streaming in Echtzeit - Amazon IVS

Fehlerbehandlung im IVS Web Broadcast SDK | Streaming in Echtzeit

Dieser Abschnitt gibt einen Überblick über die Fehlerbedingungen, wie das Web-Broadcast-SDK sie an die Anwendung meldet und wie eine Anwendung reagieren sollte, wenn diese Fehler auftreten. Fehler werden vom SDK an die Listener des StageEvents.ERROR-Ereignisses gemeldet:

stage.on(StageEvents.ERROR, (error: StageError) => { // log or handle errors here console.log(`${error.code}, ${error.category}, ${error.message}`); });

Bühnenfehler

Ein StageError-Fehler wird gemeldet, wenn das SDK auf ein Problem stößt, das nicht behoben werden kann und für dessen Behebung im Allgemeinen ein Eingreifen der App und/oder eine erneute Netzwerkverbindung erforderlich ist.

Jeder gemeldete StageError hat einen Code (oder StageErrorCode), eine Meldung (Zeichenfolge) und eine Kategorie (StageErrorCategory). Alles davon bezieht sich auf eine zugrunde liegende Vorgangskategorie.

Die Vorgangskategorie des Fehlers wird danach bestimmt, ob er mit der Verbindung zur Bühne (JOIN_ERROR), dem Senden von Medien an die Bühne (PUBLISH_ERROR) oder dem Empfangen eines eingehenden Medienstreams von der Bühne (SUBSCRIBE_ERROR) zusammenhängt.

Die Codeeigenschaft eines StageError meldet das spezifische Problem:

Name Code Empfohlene Aktion

TOKEN_MALFORMED

1

Erstellen Sie ein gültiges Token und versuchen Sie erneut, die Bühne zu instanziieren.

TOKEN_EXPIRED

2

Erstellen Sie ein noch nicht abgelaufenes Token und versuchen Sie erneut, die Bühne zu instanziieren.

TIMEOUT

3

Bei der Operation ist eine Zeitüberschreitung aufgetreten. Wenn die Bühne vorhanden und das Token gültig ist, handelt es sich bei diesem Fehler wahrscheinlich um ein Netzwerkproblem. Warten Sie in diesem Fall, bis die Konnektivität des Geräts wiederhergestellt ist.

FEHLGESCHLAGEN

4

Beim Versuch, einen Vorgang auszuführen, ist ein schwerwiegender Fehler aufgetreten. Überprüfen Sie Fehlerdetails.

Wenn die Bühne vorhanden und das Token gültig ist, handelt es sich bei diesem Fehler wahrscheinlich um ein Netzwerkproblem. Warten Sie in diesem Fall, bis die Konnektivität des Geräts wiederhergestellt ist.

Bei den meisten Fehlern im Zusammenhang mit der Netzwerkstabilität versucht das SDK intern für einen Zeitraum von bis zu 30 Sekunden erneut, eine Verbindung herzustellen, bevor ein FAILED-Fehler ausgegeben wird.

CANCELED

5

Überprüfen Sie den Anwendungscode und stellen Sie sicher, dass es keine wiederholten join-, refreshStrategy- oder replaceStrategy-Aufrufe gibt, die dazu führen könnten, dass wiederholte Vorgänge gestartet und vor Abschluss abgebrochen werden.

STAGE_AT_CAPACITY

6

Dieser Fehler weist darauf hin, dass die Bühne oder Ihr Konto voll ausgelastet ist. Falls die Bühne das Teilnehmerlimit erreicht hat, wiederholen Sie den Vorgang, wenn die Bühne nicht mehr voll ausgelastet ist, indem Sie die Strategie aktualisieren. Wenn Ihr Konto das Kontingent für gleichzeitige Abonnements oder Publisher erreicht hat, reduzieren Sie die Nutzung oder fordern Sie über die AWS-Service-Quotas-Konsole eine Erhöhung des Kontingents an.

CODEC_MISMATCH

7

Der Codec wird von der Bühne nicht unterstützt. Überprüfen Sie den Browser und die Plattform auf Codec-Unterstützung. Für IVS-Echtzeit-Streaming müssen Browser den H.264-Codec für Video und den Opus-Codec für Audio unterstützen.

TOKEN_NOT_ALLOWED

8

Das Token hat keine Berechtigung für den Vorgang. Erstellen Sie das Token mit den richtigen Berechtigungen neu und versuchen Sie es erneut.

STAGE_DELETED

9

Keine; der Versuch, einer gelöschten Bühne beizutreten, löst diesen Fehler aus.

PARTICIPANT_DISCONNECTED

10

Keine; der Versuch, mit dem Token eines Teilnehmers beizutreten, dessen Verbindung getrennt wurde, löst diesen Fehler aus.

Beispiel für die Behandlung von StageError

Verwenden Sie den StageError-Code, um festzustellen, ob der Fehler auf ein abgelaufenes Token zurückzuführen ist:

stage.on(StageEvents.ERROR, (error: StageError) => { if (error.code === StageError.TOKEN_EXPIRED) { // recreate the token and stage instance and re-join } });

Netzwerkfehler, wenn bereits eine Verbindung hergestellt wurde

Wenn die Netzwerkverbindung des Geräts ausfällt, verliert das SDK möglicherweise die Verbindung zu den Bühnenservern. Möglicherweise werden in der Konsole Fehler angezeigt, da das SDK die Backend-Dienste nicht mehr erreichen kann. POSTs auf https://broadcast.stats.live-video.net schlagen fehl.

Wenn Sie etwas veröffentlichen und/oder abonnieren, werden in der Konsole Fehler angezeigt, die sich auf Versuche beziehen, etwas zu veröffentlichen/zu abonnieren.

Intern versucht das SDK, die Verbindung mithilfe einer exponentiellen Backoff-Strategie wiederherzustellen.

Aktion: Warten Sie, bis die Konnektivität des Geräts wiederhergestellt ist.

Fehlerstatus

Es wird empfohlen, diese Status für die Anwendungsprotokollierung zu verwenden und Benutzern Nachrichten anzuzeigen, die sie über Verbindungsprobleme mit der Bühne für einen bestimmten Teilnehmer informieren.

Veröffentlichen

Das SDK meldet ERRORED, wenn eine Veröffentlichung fehlschlägt.

stage.on(StageEvents.STAGE_PARTICIPANT_PUBLISH_STATE_CHANGED, (participantInfo, state) => { if (state === StageParticipantPublishState.ERRORED) { // Log and/or display message to user } });

Abonnieren

Das SDK meldet ERRORED, wenn ein Abonnement fehlschlägt. Dies kann auf Netzwerkbedingungen zurückzuführen sein oder wenn eine Phase für Abonnenten ausgelastet ist.

stage.on(StageEvents.STAGE_PARTICIPANT_SUBSCRIBE_STATE_CHANGED, (participantInfo, state) => { if (state === StageParticipantSubscribeState.ERRORED) { // Log and/or display message to user } });