Gestion des erreurs dans le SDK de diffusion Android IVS | Streaming en temps réel
Cette section donne un aperçu des conditions d’erreur, de la façon dont le SDK de diffusion Android IVS en temps réel les signale à l’application et des actions que l’application doit prendre lorsqu’elles se produisent.
Erreurs fatales ou non fatales
L’objet d’erreur possède un champ booléen « est fatal » de BroadcastException.
En général, les erreurs fatales sont liées à la connexion au serveur Stages (soit la connexion ne peut pas être établie, soit elle est perdue et ne peut pas être rétablie). L’application doit recréer la scène et la rejoindre, éventuellement avec un nouveau jeton ou lorsque la connectivité de l’appareil sera rétablie.
Les erreurs non fatales sont généralement liées à l’état de publication/d’abonnement et sont gérées par le kit SDK, qui relance l’opération de publication/abonnement.
Vous pouvez vérifier cette propriété :
try { stage.join(...) } catch (e: BroadcastException) { If (e.isFatal) { // the error is fatal
Erreurs de jonction
Jeton incorrect
Cela se produit lorsque le jeton d’étape est incorrect.
Le kit SDK génère une exception Java à partir d’un appel à stage.join, avec le code d’erreur = 1000 et fatal = vrai.
Action : créez un jeton valide et réessayez de vous connecter.
Jeton expiré
Cela se produit lorsque le jeton d’étape est expiré.
Le kit SDK génère une exception Java à partir d’un appel à stage.join, avec le code d’erreur = 1001 et fatal = vrai.
Action : créez un nouveau jeton et réessayez de vous connecter.
Jeton non valide ou révoqué
Cela se produit lorsque le jeton d’étape n’est pas incorrect mais qu’il est rejeté par le serveur Stages. Cela est signalé de façon asynchrone via le moteur de rendu d’étape fourni par l’application.
Le kit SDK appelle onConnectionStateChanged avec une exception, avec le code d’erreur = 1026 et fatal = vrai.
Action : créez un jeton valide et réessayez de vous connecter.
Erreurs réseau lors de la connexion initiale
Cela se produit lorsque le kit SDK ne parvient pas à contacter le serveur Stages pour établir une connexion. Cela est signalé de façon asynchrone via le moteur de rendu d’étape fourni par l’application.
Le kit SDK appelle onConnectionStateChanged avec une exception, avec le code d’erreur = 1300 et fatal = vrai.
Action : attendez que la connectivité de l’appareil soit rétablie et réessayez de vous connecter.
Erreurs réseau lorsque vous êtes déjà connecté
En cas de perte de la connexion réseau de l’appareil, le kit SDK risque de perdre sa connexion aux serveurs Stage. Cela est signalé de façon asynchrone via le moteur de rendu d’étape fourni par l’application.
Le kit SDK appelle onConnectionStateChanged avec une exception, avec le code d’erreur = 1300 et fatal = vrai.
Action : attendez que la connectivité de l’appareil soit rétablie et réessayez de vous connecter.
Erreurs de publication/d’abonnement
Initial
Il existe plusieurs erreurs :
-
MultihostSessionOfferCreationFailPublish (Échec de publication de l’offre de création de sessions multi-hôtes) (1020)
-
MultihostSessionOfferCreationFailSubscribe (Échec de la création de l’offre de session multi-hôtes) (1021)
-
MultihostSessionNoIceCandidates (Session multi-hôtes No Ice Candidats) (1022)
-
MultihostSessionStageAtCapacity (Étape de session multi-hôtes à pleine capacité) (1024)
-
SignallingSessionCannotRead (Impossible de lire la session de signalisation) (1201)
-
SignallingSessionCannotSend ((Impossible d’envoyer la session de signalisation) (1202)
-
SignallingSessionBadResponse (Mauvaise réponse de la session de signalisation) (1203)
Ceux-ci sont signalés de façon asynchrone via le moteur de rendu d’étape fourni par l’application.
Le kit SDK relance l’opération un nombre limité de fois. Lors des nouvelles tentatives, l’état de publication/d’abonnement est ATTEMPTING_PUBLISH / ATTEMPTING_SUBSCRIBE. Si les nouvelles tentatives réussissent, l’état passe à PUBLISHED / SUBSCRIBED.
Le kit SDK appelle onError avec le code d’erreur approprié et fatal = faux.
Action : aucune action n’est nécessaire, car le kit SDK réessaie automatiquement. Le cas échéant, l’application peut actualiser la stratégie pour forcer d’autres tentatives.
Déjà établi, puis échec
Une publication ou un abonnement peut échouer une fois qu’il a été établi, probablement en raison d’une erreur réseau. Le code d’erreur pour une « connexion d’appairage perdue en raison d’une erreur réseau » est 1400.
Cela est signalé de façon asynchrone via le moteur de rendu d’étape fourni par l’application.
Le kit SDK relance l’opération de publication/d’abonnement. Lors des nouvelles tentatives, l’état de publication/d’abonnement est ATTEMPTING_PUBLISH / ATTEMPTING_SUBSCRIBE. Si les nouvelles tentatives réussissent, l’état passe à PUBLISHED / SUBSCRIBED.
Le kit SDK appelle onError avec le code d’erreur = 1400 et fatal = false.
Action : aucune action n’est nécessaire, car le kit SDK réessaie automatiquement. Le cas échéant, l’application peut actualiser la stratégie pour forcer d’autres tentatives. En cas de perte totale de connectivité, il est probable que la connexion à Stages échoue également.