Gestione degli errori nell'SDK di trasmissione IVS su Android | Streaming in tempo reale
Questa sezione fornisce una panoramica delle condizioni di errore, del modo in cui l'SDK di trasmissione IVS per lo streaming in tempo reale su Android le segnala all'applicazione e di cosa dovrebbe fare un'applicazione quando si verificano tali errori.
Errori irreversibili e non irreversibili
L'oggetto errore ha un campo booleano "è irreversibile" di BroadcastException.
In generale, gli errori irreversibili sono legati alla connessione al server degli stage (ad es. non è possibile stabilire una connessione oppure la connessione viene interrotta e non può essere recuperata). L'applicazione dovrebbe ricreare lo stage e riaccedervi, possibilmente con un nuovo token o quando la connettività del dispositivo viene ripristinata.
Gli errori non irreversibili sono generalmente correlati allo stato di pubblicazione/sottoscrizione e vengono gestiti dall'SDK, che riprova l'operazione di pubblicazione/sottoscrizione.
Puoi controllare questa proprietà:
try { stage.join(...) } catch (e: BroadcastException) { If (e.isFatal) { // the error is fatal
Errori di accesso
Token non conforme
Ciò accade quando il token dello stage non è conforme.
L'SDK genera un'eccezione Java da una chiamata a stage.join, con codice di errore = 1000 e fatal = true.
Azione: crea un token valido e riprova a partecipare.
Token scaduto
Ciò accade quando il token dello stage è scaduto.
L'SDK genera un'eccezione Java da una chiamata a stage.join, con codice di errore = 1001 e fatal = true.
Azione: crea un nuovo token e riprova a partecipare.
Token non valido o revocato
Ciò accade quando il token dello stage è conforme ma viene rifiutato dal server degli stage. Ciò viene segnalato in modo asincrono tramite il renderer dello stage fornito dall'applicazione.
L'SDK chiama onConnectionStateChanged con un'eccezione, con codice di errore = 1026 e fatal = true.
Azione: crea un token valido e riprova a partecipare.
Errori di rete per l'accesso iniziale
Ciò accade quando l'SDK non riesce a contattare il server degli stage per stabilire una connessione. Ciò viene segnalato in modo asincrono tramite il renderer dello stage fornito dall'applicazione.
L'SDK chiama onConnectionStateChanged con un'eccezione, con codice di errore = 1300 e fatal = true.
Azione: attendi il ripristino della connettività del dispositivo e riprova a connetterti.
Errori di rete quando è già stato effettuato l'accesso
Se la connessione di rete del dispositivo si interrompe, l'SDK potrebbe perdere la connessione ai server dello stage. Ciò viene segnalato in modo asincrono tramite il renderer dello stage fornito dall'applicazione.
L'SDK chiama onConnectionStateChanged con un'eccezione, con codice di errore = 1300 e fatal = true.
Azione: attendi il ripristino della connettività del dispositivo e riprova a connetterti.
Errori di pubblicazione/sottoscrizione
Initial
Esistono diversi tipi di errori:
-
MultihostSessionOfferCreationFailPublish (1020)
-
MultihostSessionOfferCreationFailSubscribe (1021)
-
MultihostSessionNoIceCandidates (1022)
-
MultihostSessionStageAtCapacity (1024)
-
SignallingSessionCannotRead (1201)
-
SignallingSessionCannotSend (1202)
-
Sessione di segnalazione: risposta errata (1203)
Questi vengono segnalati in modo asincrono tramite il renderer dello stage fornito dall'applicazione.
L'SDK riprova l'operazione per un numero limitato di volte. Durante i nuovi tentativi, lo stato di pubblicazione/sottoscrizione è ATTEMPTING_PUBLISH/ATTEMPTING_SUBSCRIBE. Se i nuovi tentativi hanno esito positivo, lo stato diventa PUBLISHED/SUBSCRIBED.
L'SDK chiama onError con il codice di errore pertinente e fatal = false.
Azione: non è necessaria alcuna azione, poiché l'SDK riprova automaticamente. Facoltativamente, l'applicazione può aggiornare la strategia per imporre ulteriori tentativi.
Già stabilita, poi fallita
Una pubblicazione o una sottoscrizione possono fallire una volta stabilite, molto probabilmente a causa di un errore di rete. Il codice di errore per una "connessione peer interrotta a causa di un errore di rete" è 1400.
Ciò viene segnalato in modo asincrono tramite il renderer dello stage fornito dall'applicazione.
L'SDK riprova l'operazione di pubblicazione/sottoscrizione. Durante i nuovi tentativi, lo stato di pubblicazione/sottoscrizione è ATTEMPTING_PUBLISH/ATTEMPTING_SUBSCRIBE. Se i nuovi tentativi hanno esito positivo, lo stato diventa PUBLISHED/SUBSCRIBED.
L'SDK chiama onError con il codice di errore = 1400 e fatal = false.
Azione: non è necessaria alcuna azione, poiché l'SDK riprova automaticamente. Facoltativamente, l'applicazione può aggiornare la strategia per imporre ulteriori tentativi. In caso di perdita totale della connettività, è probabile che anche la connessione agli stage fallisca.