Gestione degli errori nell'SDK di trasmissione Web IVS | Streaming in tempo reale - Amazon IVS

Gestione degli errori nell'SDK di trasmissione Web IVS | Streaming in tempo reale

Questa sezione fornisce una panoramica delle condizioni di errore, del modo in cui l'SDK di trasmissione per web le segnala all'applicazione e di cosa dovrebbe fare un'applicazione quando si verificano tali errori. Gli errori vengono segnalati dall'SDK ai listener dell'evento StageEvents.ERROR:

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

Errori di fase

Se l'SDK rileva un problema da cui non può essere ripristinato viene segnalato uno StageError, la cui risoluzione in genere richiede l'intervento dell'app e/o la riconnessione di rete.

Ogni StageError segnalato ha un codice (o StageErrorCode), un messaggio (stringa) e una categoria (StageErrorCategory). Ciascuno è correlato a una categoria operativa sottostante.

La categoria di operazione dell'errore viene determinata in base al fatto che sia correlata alla connessione alla fase (JOIN_ERROR), all'invio di file multimediali alla fase (PUBLISH_ERROR) o alla ricezione di un flusso multimediale in entrata dalla fase (SUBSCRIBE_ERROR).

La proprietà codice di uno StageError riporta il problema specifico:

Nome Codice Operazione consigliata

TOKEN_MALFORMED

1

Crea un token valido e prova a riavviare l'istanza della fase.

TOKEN_EXPIRED

2

Crea un token non scaduto e prova a riavviare l'istanza della fase.

TIMEOUT

3

Timeout dell'operazione. Se la fase esiste e il token è valido, l'errore è probabilmente un problema di rete. In tal caso, attendi il ripristino della connettività del dispositivo.

Non riuscito

4

Durante il tentativo di intervento si è verificata una condizione fatale. Verifica i dettagli dell'errore.

Se la fase esiste e il token è valido, l'errore è probabilmente un problema di rete. In tal caso, attendi il ripristino della connettività del dispositivo.

CANCELED (ANNULLATO)

5

Controlla il codice dell'applicazione e assicurati che non vi siano invocazioni join, refreshStrategy o replaceStrategy ripetute, che potrebbero causare l'avvio e l'annullamento di operazioni ripetute prima del completamento.

STAGE_AT_CAPACITY

6

Prova a eseguire nuovamente l'operazione quando la fase non è più a piena capacità aggiornando la strategia.

CODEC_MISMATCH

7

Il codec non è supportato dalla fase. Controlla il supporto del codec per il browser e la piattaforma. Per lo streaming in tempo reale IVS, i browser devono supportare il codec H.264 per il video e il codec Opus per l'audio.

TOKEN_NOT_ALLOWED

8

Il token non dispone dell'autorizzazione per l'operazione. Ricrea il token con le autorizzazioni corrette e riprova.

Esempio di gestione di StageError

Utilizza il codice StageError per determinare se l'errore è dovuto a un token scaduto:

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

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 della fase. È possibile che vengano visualizzati errori nella console perché l'SDK non è più in grado di raggiungere i servizi di backend. I POST su https://broadcast.stats.live-video.net falliranno.

Se stai pubblicando e/o ti stai iscrivendo, vedrai errori nella console relativi ai tentativi di pubblicazione/sottoscrizione.

Internamente, l'SDK proverà a riconnettersi con una strategia di backoff esponenziale.

Azione: attendi il ripristino della connettività del dispositivo.

Stati con errore

Ti consigliamo di utilizzare questi stati per la registrazione delle applicazioni e per mostrare agli utenti dei messaggi che li avvisano in merito ai problemi di connettività alla fase per un determinato partecipante.

Pubblicare

L'SDK segnala ERRORED quando una pubblicazione non va a buon fine.

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

Subscribe

L'SDK segnala ERRORED quando una sottoscrizione fallisce. Ciò può verificarsi a causa delle condizioni della rete o se uno stage ha raggiunto la capacità massima di abbonati.

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