Gestion des erreurs réseau

Gestion des erreurs réseau

Lorsque le lecteur affiche une page web à partir d'un serveur externe, une erreur de réseau peut survenir, par exemple si le serveur est inaccessible ou que la page est non trouvée...

Le lecteur vidéo intègre un système de gestion d'erreur permettant de traiter de tels cas de figure.
Le comportement par défaut est de tenter de recharger la page défaillante encore et encore. Durant ce processus, rien ne s'affiche à l'écran excepté la vidéo (si tant est qu'il y en ait une).
Il est possible de personnaliser ce mécanisme en affichant une page locale pour informer les utilisateurs que le service n'est pas disponible actuellement.

Notez que La gestion d'erreurs ne couvre pas les pages web chargées dans une <iframe>.

En fonction de vos besoins, vous pouvez personnaliser le comportement du lecteur en appliquant l’une des méthodes suivantes :

La méthode facile

Dans le dossier www, créez une page nommée error-iframe.html contenant des excuses, un jeu vidéo ou tout ce que vous voudriez dire à l'utilisateur...
Cette page sera automatiquement affichée en cas d'erreur de chargement.
Pendant ce temps le lecteur vidéo vérifiera la disponibilité de la page défaillante et la rechargera lorsqu'elle sera à nouveau disponible.

Notez que cette page d'erreur est chargée dans une <iframe> et donc ne peut pas contrôler le lecteur vidéo à l'aide de l'API JavaScript.

Exemple error-iframe.html :

<html>
    <head>
        <style>
            body {
                background-color: #000000;
                font-family: "Roboto";
            }
            div {
                width: 100%;
                height:100%;
                font-size: 40px;
                color: white;
                text-align: center;
                margin-top: 200px;
            }
        </style>
    </head>
    <body>
        <div>I'll be back...</div>
    </body>
</html>

La méthode étendue

Si vous avez besoin de contrôler le lecteur vidéo ou de mettre en oeuvre votre propre gestion d'erreur, il est possible d'aller plus loin. Cette méthode réservée aux utilisateurs chevronnés nécessite de prendre beaucoup de précautions...

Dans le dossier www, créez une page nommée error-handler.html.
Cette page est chargée (mais pas dans une iframe) lorsqu’une erreur de chargement est détectée, ce qui permet de contrôler le lecteur vidéo avec la présente API JavaScript.
Voici à quoi ressemble la page générique :

Example error-handler.html :

<html>
    <head>
        <script src="internal/error-handler.js"></script>
        <style>
            body {
                margin: 0px;
            }
            iframe {
                position: fixed;
                top: 0;
                left: 0;
                bottom: 0;
                right: 0;
                width: 100%;
                height: 100%;
                border: none;
                margin: 0;
                padding: 0;
                overflow: hidden;
            }
        </style>
    </head>
    <body>
        <iframe id="useriframe"></iframe>
    </body>
</html>

Comme vous pouvez le constater, cette page appelle un script appelé internal/error-handler.js qui est intégré au lecteur vidéo.
Il est responsable des tâches suivantes :

  • interroger la page web défaillante et la recharger lorsqu'elle est disponible.
  • charger dans l'iframe useriframe la page error-iframe.html précédemment définie.

Si vous n'avez pas besoin de ces fonctionnalités, vous pouvez supprimer les balises <script> et <iframe> et implémenter votre propre gestion d'erreur.
Si vous avez seulement besoin du mécanisme de rechargement mais pas du mécanisme d'affichage de l'iframe, vous pouvez supprimer la balise <iframe> et conserver <script>. Dans ce cas, le fichier error-iframe.html ne sera pas utilisé du tout.

Le fichier error-handler.html est chargé avec certains paramètres fournissant des indications sur la cause de l'erreur :

  • url : l'URL dont le chargement a échoué.
  • description : une description de l'erreur humainement lisible.
  • status : code de statut HTTP optionnel.
  • erreur : code d'erreur (ERROR_HOST_LOOKUP, ERROR_UNSUPPORTED_AUTH_SCHEME, ERROR_AUTHENTICATION, ERROR_PROXY_AUTHENTICATION, ERROR_CONNECT, ERROR_TIMEOUT, ERROR_TIMEOUT, ERROR_REDIRECT_LOOP, ERROR_UNSUPPORTED_SCHEME, ERROR_FAILED_SSL_HANDSHAKE, ERROR_BAD_URL, ERROR_FILE, ERROR_FILE_NOT_FOUND, ERROR_FILE_NOT_FOUND, ERROR_TOO_MANY_REQUESTS, ERROR_HTTP, ERROR_UNKNOWN)

N'essayez pas de charger une page web externe à partir de la page d'erreur. Ceci pourrait provoquer des tentatives intempestives de chargement lorsque cette page n'est pas accessible.