Fehlerbehandlung im IVS Android Broadcast SDK | Streaming in Echtzeit
Dieser Abschnitt gibt einen Überblick über die Fehlerbedingungen, wie das Android Broadcast SDK von IVS-Streaming in Echtzeit sie an die Anwendung meldet und wie eine Anwendung reagieren sollte, wenn diese Fehler auftreten.
Schwerwiegende und nicht schwerwiegende Fehler
Das Fehlerobjekt hat das boolesche Feld „ist fatal“ von BroadcastException.
Im Allgemeinen hängen schwerwiegende Fehler mit der Verbindung zum Stages-Server zusammen (entweder kann eine Verbindung nicht hergestellt werden oder sie ist verloren gegangen und kann nicht wiederhergestellt werden). Die Anwendung sollte die Stage neu erstellen und erneut beitreten, ggf. mit einem neuen Token oder wenn die Konnektivität des Geräts wiederhergestellt ist.
Fehler, die nicht schwerwiegend sind, hängen in der Regel mit dem Status „Veröffentlichen/Abonnieren“ zusammen und werden vom SDK behandelt, das den Vorgang zum Veröffentlichen/Abonnieren erneut versucht.
Sie können diese Eigenschaft überprüfen:
try { stage.join(...) } catch (e: BroadcastException) { If (e.isFatal) { // the error is fatal
Beitrittsfehler
Fehlerhaft formatiertes Token
Dies passiert, wenn das Phasen-Token falsch formatiert ist.
Das SDK löst bei einem Aufruf von eine Java-Ausnahme mit dem Fehlercode = 1000 und fatal = true aus. stage.join
Aktion: Erstellen Sie ein gültiges Token und versuchen Sie erneut, Mitglied zu werden.
Abgelaufenes Token
Dies passiert, wenn das Phasen-Token abgelaufen ist.
Das SDK löst bei einem Aufruf von eine Java-Ausnahme mit dem Fehlercode = 1001 und fatal = true aus. stage.join
Aktion: Erstellen Sie ein neues Token und versuchen Sie erneut, Mitglied zu werden.
Ungültiges oder widerrufenes Token
Dies passiert, wenn das Stage-Token nicht falsch formatiert ist, sondern vom Stages-Server zurückgewiesen wird. Dies wird asynchron über den von der Anwendung bereitgestellten Phasen-Renderer gemeldet.
Das SDK ruft onConnectionStateChanged mit einer Ausnahme auf, mit dem Fehlercode = 1026 und fatal = true.
Aktion: Erstellen Sie ein gültiges Token und versuchen Sie erneut beizutreten.
Netzwerkfehler beim ersten Beitritt
Dies passiert, wenn das SDK den Stages-Server nicht kontaktieren kann, um eine Verbindung herzustellen. Dies wird asynchron über den von der Anwendung bereitgestellten Phasen-Renderer gemeldet.
Das SDK ruft onConnectionStateChanged mit einer Ausnahme auf, mit dem Fehlercode = 1300 und fatal = true.
Handlung: Warten Sie, bis die Konnektivität des Geräts wiederhergestellt ist, und versuchen Sie erneut, eine Verbindung herzustellen.
Netzwerkfehler, wenn bereits eine Verbindung hergestellt wurde
Wenn die Netzwerkverbindung des Geräts ausfällt, verliert das SDK möglicherweise die Verbindung zu den Stage-Servern. Dies wird asynchron über den von der Anwendung bereitgestellten Phasen-Renderer gemeldet.
Das SDK ruft onConnectionStateChanged mit einer Ausnahme auf, mit dem Fehlercode = 1300 und fatal = true.
Handlung: Warten Sie, bis die Konnektivität des Geräts wiederhergestellt ist, und versuchen Sie erneut, eine Verbindung herzustellen.
Fehler beim Veröffentlichen/Abonnieren
Anfänglich
Es gibt mehrere Arten von Fehlern:
-
MultihostSessionOfferCreationFailPublish (1.020)
-
MultihostSessionOfferCreationFailSubscribe (1.021)
-
MultihostSessionNoIceCandidates (1.022)
-
MultihostSessionStageAtCapacity (1.024)
-
SignallingSessionCannotRead (1.201)
-
SignallingSessionCannotSend (1.202)
-
SignallingSessionBadResponse (1.203)
Diese werden asynchron über den von der Anwendung bereitgestellten Stage-Renderer gemeldet.
Das SDK wiederholt den Vorgang für eine begrenzte Anzahl von Malen. Bei Wiederholungen ist der Status „Veröffentlichen/Abonnieren“ ATTEMPTING_PUBLISH / ATTEMPTING_SUBSCRIBE. Wenn die Wiederholungsversuche erfolgreich sind, ändert sich der Status auf PUBLISHED / SUBSCRIBED.
Das SDK ruft onError mit dem entsprechenden Fehlercode und fatal = false auf.
Aktion: Es ist keine Aktion erforderlich, da das SDK es automatisch wiederholt. Optional kann die Anwendung die Strategie aktualisieren, um weitere Wiederholungsversuche zu erzwingen.
Bereits eingerichtet, dann gescheitert
Eine Veröffentlichung oder ein Abonnement kann nach der Einrichtung fehlschlagen, was höchstwahrscheinlich auf einen Netzwerkfehler zurückzuführen ist. Fehlercode 1400, Meldung: „Die Peer-Verbindung wurde aufgrund eines unbekannten Netzwerkfehlers unterbrochen.“
Dies wird asynchron über den von der Anwendung bereitgestellten Stage-Renderer gemeldet.
Das SDK versucht erneut, den Vorgang zu veröffentlichen/abonnieren. Bei Wiederholungen ist der Status „Veröffentlichen/Abonnieren“ ATTEMPTING_PUBLISH / ATTEMPTING_SUBSCRIBE. Wenn die Wiederholungsversuche erfolgreich sind, ändert sich der Status auf PUBLISHED / SUBSCRIBED.
Das SDK ruft onError mit dem Fehlercode = 1400 und fatal = false auf.
Aktion: Es ist keine Aktion erforderlich, da das SDK es automatisch wiederholt. Optional kann die Anwendung die Strategie aktualisieren, um weitere Wiederholungsversuche zu erzwingen. Im Falle eines vollständigen Verbindungsverlusts ist es wahrscheinlich, dass auch die Verbindung zu Stages fehlschlägt.