Démarrage rapide : gestion des événements de connexion et des changements de disponibilité
Cette rubrique vous explique comment vous inscrire à des notifications concernant des événements de modification d’état de la connexion et récupérer les informations d’état actuelles. Nous vous donnerons également des recommandations relatives au comportement des applications qui prendront en charge une expérience utilisateur cohérente dans des scénarios réseau.
Prérequis
Il est important de savoir ce qu’est ConnectionProfile et comment accéder aux informations qu’il représente ; pour plus d’informations, voir Démarrage rapide : récupération des informations de connexion réseau. Pour des exemples de code supplémentaires, téléchargez l’exemple d’informations réseau.
Pour préparer votre application du Windows Store à une mise en réseau, vous devez définir cette fonctionnalité dans le fichier Package.appxmanifest du projet. Pour obtenir une définition de chaque fonctionnalité réseau, voir Comment configurer les fonctionnalités d’isolement réseau.
En quoi consiste un événement de modification d’état de la connexion ?
Les événements de modification d’état indiquent des changements au niveau de la disponibilité, du type ou du coût de connectivité offerts par une connexion individuelle. Les dernières applications connectées se heurtent fréquemment à des scénarios de traversée réseau qui sont propres à l’utilisation d’appareils mobiles. Lorsque Windows 8 détecte un nouveau réseau, il le propose automatiquement en tant que nouvelle option de connectivité. Par exemple, si un utilisateur utilise un appareil sur un réseau 3G/4G pour diffuser des données et que, par la suite, il arrive dans le champ d’un réseau Wi-Fi, la nouvelle option de connectivité est disponible pour permettre à l’application de l’exploiter. Bien sûr, cela signifie également qu’un utilisateur peut sortir du champ d’un réseau, lequel peut même être en cours d’utilisation.
Compte tenu de toutes ces possibilités, il est amplement justifié d’équiper votre application d’une logique capable de faire des choix éclairés lorsqu’elle est confrontée à des changements en termes de disponibilité du réseau. Toutefois, il est à noter que les connexions ne basculent pas automatiquement vers d’autres connexions de façon transparente ; votre application doit s’inscrire aux événements NetworkStatusChanged et s’adapter en conséquence.
Inscription aux notifications d’événements de modification d’état de connexion
Pour que votre application puisse s’adapter en cas de modification de l’état du réseau, elle doit savoir à quel moment ces modifications ont lieu. Le code suivant montre l’inscription aux notifications d’événements NetworkStatusChange pour un profil de connexion spécifique.
//Register for Network Status Change notifications, and display new Internet Connection Profile information on network status change function registerForNetworkStatusChangeNotif() { try { // register for network status change notifications if (!registeredNetworkStatusNotif) { var networkInfo.addEventListener("networkstatuschanged", onNetworkStatusChange); registeredNetworkStatusNotif = true; } } catch (e) { print("An unexpected exception occured: " + e.name + ": " + e.message); } }
Récupération des informations de modification d’état de connexion
Lorsqu’une modification d’état se produit pour le profil de connexion Internet, l’exemple de fonction de gestionnaire d’événements suivant fournit l’objet ConnectionProfile associé à l’événement et affiche les informations d’état des connexions, lesquelles incluent la portée, le type et le coût de connectivité actuels, tels que définis par NetworkConnectivityLevel, NetworkTypes et NetworkCostType.
Désormais, lorsqu’une modification d’état se produit pour le profil de connexion Internet, l’exemple de fonction suivant fournit l’objet ConnectionProfile associé.
// Event handler for Network Status Change event function onNetworkStatusChange(sender) { try { // get the ConnectionProfile that is currently used to connect to the Internet var internetProfile = networkInfo.getInternetConnectionProfile(); if (internetProfile === null) { print("Not connected to Internet\n\r"); } else { internetProfileInfo += getConnectionProfileInfo(internetProfile) + "\n\r"; print(internetProfileInfo); } internetProfileInfo = ""; } catch (e) { print("An unexpected exception occured: " + e.name + ": " + e.message); } }
Comportement recommandé pour l’application lors de la gestion des modifications d’état de connexion
Le tableau suivant recense les principaux scénarios de modification d’état de connexion et fournit des recommandations relatives au comportement des applications :
| Scénario | Comportement recommandé |
|---|---|
| Pert de connexion en raison d’une erreur |
Les connexions peuvent être rétablies en retentant l’opération réseau. En cas d’échec, attendez qu’un événement NetworkStatusChanged récupère les informations d’état de connexion actuelles. |
| Perte du réseau |
Informez l’utilisateur que la connexion a été perdue, puis inscrivez-vous et attendez un événement NetworkStatusChanged. |
| Nouvelle disponibilité du réseau |
Avec les appareils mobiles, les scénarios impliquant un seul appareil traversant plusieurs réseaux publics et privés sont courants. Par exemple, un utilisateur peut être connecté à un réseau haut débit mobile et discuter avec des amis à l’aide de l’application de messagerie, avant de rentrer chez lui et de se connecter à un réseau non restreint. La stratégie par défaut dans Windows 8 est de donner la priorité au réseau non restreint par rapport à la connexion réseau limitée, et de sélectionner le réseau le plus rapide par rapport au plus lent. Toutefois, les connexions établies précédemment ne basculent pas automatiquement vers un nouveau réseau. Votre application doit utiliser les informations les plus récentes pour prendre la meilleure décision. Par exemple, si un flux vidéo est fermé à la fin d’un téléchargement, il est inutile de basculer vers un nouveau réseau pour redémarrer le téléchargement. En revanche, si la connexion au réseau actuelle est instable, très lente ou si le téléchargement est loin d’être terminé, il peut être préférable de basculer vers le nouveau réseau. Si le basculement vers un autre réseau est nécessaire pour vos scénarios d’applications, suivez les recommandations suivantes lorsque vous détectez un nouveau réseau :
|
| Modification du coût réseau |
L’utilisation des réseaux mobiles, en particulier, est souvent soumise à des restrictions spécifiques. Si le coût de la connexion réseau de votre application est modifié en raison d’une consommation supérieure à 80 % du plafond de données transmises via une connexion mobile haut débit, d’un coût variable ou de l’itinérance, adaptez le comportement de l’application comme il est indiqué dans Démarrage rapide : gestion des contraintes de coût des connexions réseau limitées. |
Remarque Les développeurs confirmés peuvent également choisir d’optimiser le comportement de l’application lors de nouvelles tentatives d’opérations réseau. Par exemple, vous souhaitez peut-être remplacer une connexion existante par une nouvelle connexion sur un réseau à plus haut débit. Dans ce scénario, un développeur peut utiliser les API Sockets, comme StreamSocketInformation.BandwidthStatistics, pour déterminer si le passage à une autre connexion est approprié.
Récapitulatif
Dans cette rubrique, nous avons vu comment s’inscrire aux notifications de modification d’état de connexion et comment utiliser ces notifications pour récupérer l’objet ConnectionProfile pour lequel l’événement s’est produit. Nous avons également examiné le comportement d’application recommandé lors de la gestion des scénarios de modification d’état les plus courants.
Bien que cette rubrique couvre la disponibilité du réseau, dans les scénarios impliquant des connexions réseau limitées, un événement NetworkStatusChanged peut également représenter une modification apportée au coût et aux propriétés du forfait données. Pour obtenir plus d’informations et des recommandations sur la meilleure façon de changer le comportement d’une application dans ces scénarios, voir Démarrage rapide : gestion des contraintes de coût des connexions réseau limitées.
Rubriques associées
- Exemple d’informations réseau
- Démarrage rapide : récupération des informations de connexion réseau
- Démarrage rapide : gestion des contraintes de coût des connexions réseau limitées
- Windows.Networking.Connectivity
