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.

Per la maggior parte degli errori relativi alla stabilità della rete, l'SDK riproverà internamente per un periodo massimo di 30 secondi prima di emettere un errore FAILED.

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

Questo errore indica che lo stage o l'account sono al massimo della capacità. Se lo stage ha raggiunto il limite di partecipanti, prova a eseguire nuovamente l'operazione quando lo stage non è più a piena capacità aggiornando la strategia. Se il tuo account ha raggiunto la quota di abbonamenti o publisher simultanei, riduci l'utilizzo o richiedi un aumento della quota tramite la console AWS Service Quotas.

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.

STAGE_DELETED

9

Nessuno; il tentativo di entrare in uno stage eliminato attiva questo errore.

PARTICIPANT_DISCONNESSO

10

Nessuno; il tentativo di partecipare con il token di un partecipante disconnesso attiva questo errore.

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 } });