Connexion à l’aide de sockets WebSocket (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Envoyez et recevez des données en utilisant des WebSockets pour établir une communication réseau bidirectionnelle, en temps réel, sécurisée et à faible latence à l’aide de fonctionnalités de l’espace de noms Windows.Networking.Sockets.

Que sont les WebSockets ?

Le protocole WebSocket définit un mécanisme de communication bidirectionnelle, sécurisée et rapide entre un client et un serveur sur le Web. Les données sont transférées immédiatement via une connexion duplex intégral à un seul socket, ce qui permet d’envoyer et de recevoir les messages à partir des deux points de terminaison en temps réel. Les WebSockets sont parfaitement adaptés pour une utilisation dans les applications Windows Runtime qui incluent des jeux en temps réel, des notifications de réseau social instantanées, des affichages actualisés du cours des actions ou des informations météorologiques, ou d’autres applications nécessitant un transfert de données rapide et sécurisé. Les WebSockets fonctionnent aussi via les proxys et les pare-feu car le protocole WebSocket utilise par défaut les mêmes ports que ceux utilisés par les navigateurs Web (HTTP et HTTPS).

Pour établir une connexion WebSocket, une négociation HTTP spécifique est réalisée entre le client et le serveur. Si cette négociation réussit, le protocole de la couche application est « mis à niveau » de HTTP vers WebSockets, en utilisant la connexion TCP déjà établie. Le protocole HTTP est alors totalement mis à l’écart. Les données peuvent être envoyées et reçues par les deux points de terminaison à l’aide du protocole WebSocket jusqu’à ce que la connexion WebSocket soit fermée.

Important  Un client ne peut pas utiliser des WebSockets pour transférer des données, sauf si le serveur utilise lui-même le protocole WebSocket. Si le serveur ne prend pas en charge les WebSockets, vous devez utiliser une autre méthode de transfert de données.

 

L’espace de noms Windows.Networking.Sockets fournit une prise en charge de WebSockets clients dans Windows Runtime. Les WebSockets clients et serveurs sont pris en charge sur Windows 8.1 pour les applications de bureau.

L’espace de noms Windows.Networking.Sockets définit deux types d’objets WebSocket qui peuvent être utilisés par des clients dans les applications Windows Runtime : MessageWebSocket et StreamWebSocket. Le tableau ci-dessous décrit ces deux types de WebSockets.

MessageWebSocket StreamWebSocket
Approprié pour les scénarios classiques où les messages ne sont pas très volumineux. Approprié pour les scénarios dans lesquels des fichiers volumineux (tels que des photos ou des films) sont transférés.
Active la notification indiquant qu’un message WebSocket entier a été reçu. Permet la lecture de sections d’un message avec chaque opération de lecture.
Prend en charge à la fois UTF-8 et les messages binaires. Prend en charge uniquement les messages binaires.
Comparable dans une certaine mesure à un socket UDP (DatagramSocket). Comparable dans une certaine mesure à un socket TCP (StreamSocket).

 

Utilisation de WebSockets avec l’isolement réseau

La fonctionnalité d’isolement réseau dans Windows Runtime permet à un développeur de contrôler et de limiter l’accès réseau par une application Windows Runtime. Toutes les applications n’ont pas besoin d’un accès au réseau. Néanmoins, pour celles qui en ont besoin, Windows Runtime propose différents niveaux d’accès qui peuvent être activés en sélectionnant les fonctionnalités appropriées.

L’isolement réseau permet à un développeur de définir pour chaque application la portée de l’accès réseau requis. Une application pour laquelle la portée appropriée ne serait pas définie ne peut pas accéder au type de réseau spécifié et au type spécifique de demande réseau (demandes sortantes à l’initiative du client ou à la fois demandes entrantes non sollicitées et demandes sortantes à l’initiative du client). La possibilité de définir et de mettre en œuvre l’isolement réseau garantit que si une application est compromise, elle ne pourra accéder qu’aux réseaux pour lesquels l’accès aura été expressément accordé à l’application. Cela réduit de façon significative la portée de l’impact sur d’autres applications et sur Windows.

L’isolement réseau affecte tous les éléments de classe de l’espace de noms Windows.Networking.Sockets qui essaient d’accéder au réseau. Windows applique activement l’isolement réseau. Un appel à une méthode sur la classe MessageWebSocket ou StreamWebSocketde l’espace de noms Windows.Networking.Sockets qui conduit à un accès réseau peut échouer en raison de l’isolement réseau si la fonctionnalité réseau appropriée n’a pas été activée.

Les fonctionnalités réseau d’une application sont configurées dans le manifeste de l’application à la création de cette dernière. Les fonctionnalités réseau sont généralement ajoutées à l’aide de Microsoft Visual Studio 2013 Update 2 durant le développement de l’application. Elles peuvent également être définies manuellement dans le fichier manifeste de l’application à l’aide d’un éditeur de texte.

Pour plus d’informations sur l’isolement réseau, voir Comment définir les fonctionnalités réseau.

Audience de développeurs

Les exemples fournis dans les rubriques suivantes utilisent JavaScript et reposent sur l’exemple WebSocket. Pour obtenir une aide générale sur la création d’une application Windows Runtime en JavaScript, voir Feuille de route pour les applications Windows Runtime en JavaScript.

Dans cette section

Rubrique Description
Comment établir une connexion à l’aide d’un MessageWebSocket

Présente les conditions requises et la procédure à suivre pour utiliser un MessageWebSocket afin d’envoyer et de recevoir des données depuis un serveur Web.

Comment établir une connexion à l’aide d’un StreamWebSocket

Présente les conditions requises et la procédure à suivre pour utiliser un StreamWebSocket afin d’envoyer et de recevoir des données depuis un serveur Web.

Comment utiliser des contrôles WebSocket avancés

Explique comment utiliser des contrôles de socket avancés pour définir des options sur un objet WebSocket.

Comment sécuriser des connexions WebSocket avec TLS/SSL

Explique comment sécuriser des connexions WebSocket avec TLS/SSL (Transport Layer Security/Secure Sockets Layer).

 

En savoir plus sur les fonctionnalités similaires et associées

Section Description
Comment configurer les fonctionnalités d’isolement réseau

Présente les fonctionnalités d’isolement réseau et explique comment les configurer afin de contrôler entièrement l’accès réseau pour une application du Windows Store.

Établissement de connexions réseau avec des sockets

Présente les conditions requises et la procédure à suivre pour utiliser des sockets afin d’envoyer et de recevoir des données depuis une ressource réseau.

Ajout d’une prise en charge de réseau

Contient des informations sur l’ajout de la prise en charge de réseau à votre application.

Débogage et résolution des problèmes liés aux connexions réseau

Propose des suggestions et informations pour la résolution des problèmes de connexion.

 

Rubriques associées

Autre

Feuille de route pour les applications Windows Runtime en JavaScript

Référence

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Exemples

Exemple WebSocket