Comment utiliser des contrôles WebSocket avancés (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 ]
Cette rubrique explique comment utiliser des contrôles de socket avancés lorsque les fonctionnalités MessageWebSocket et StreamWebSocket sont utilisées dans une application Windows Runtime.
Ce que vous devez savoir
Technologies
-
Permet les communications réseau à l’aide de sockets et de WebSockets.
Prérequis
- Les exemples fournis dans cette rubrique sont en langage JavaScript. Des connaissances de base sur les WebSockets sont recommandées.
Vue d’ensemble des contrôles WebSocket avancés
Les classes MessageWebSocket et StreamWebSocket suivent le même modèle en matière d’utilisation de contrôles avancés. À chacune des classes principales ci-dessus correspondent des classes associées permettant d’accéder à des contrôles avancés :
- MessageWebSocketControl - Fournit un contrôle de socket de la qualité de service sur un objet MessageWebSocket.
- StreamWebSocketControl - Fournit des données de contrôle de socket sur un objet StreamWebSocket.
Le modèle de base pour l’utilisation des contrôles avancés est le même pour les deux types de WebSockets. Dans la discussion qui suit, un objet StreamWebSocket est utilisé comme exemple, mais le même processus peut être utilisé avec un MessageWebSocket.
- Créez un objet StreamWebSocket.
- Utilisez la propriété StreamWebSocket.Control pour obtenir l’instance StreamWebSocketControl associée à un objet StreamWebSocket.
- Définissez une propriété sur l’objet StreamWebSocketControl afin de définir une option de socket avancée.
L’application doit toujours définir la propriété sur l’objet StreamWebSocketControl avant de lancer une opération de connexion. Pour cette raison, il est préférable de définir les options avancées immédiatement après avoir créé le socket. N’essayez pas de définir une propriété StreamWebSocketControl après que le socket a appelé la méthode ConnectAsync.
Contrôles StreamWebSocket avancés
L’objet StreamWebSocket propose différentes options avancées.
- StreamWebSocketControl.NoDelay - Indique si l’algorithme de Nagle est utilisé sur un objet StreamWebSocket.
- StreamWebSocketControl.OutboundBufferSizeInBytes - Contrôle la taille, en octets, du tampon d’envoi à utiliser pour l’envoi de données sur un objet StreamWebSocket.
- StreamWebSocketControl.ProxyCredential - Fournit les informations d’identification à utiliser pour l’authentification auprès du serveur proxy via l’authentification d’en-tête HTTP à l’aide d’un objet StreamWebSocket.
- StreamWebSocketControl.ServerCredential - Fournit les informations d’identification à utiliser pour authentifier le serveur WebSocket via l’authentification d’en-tête HTTP à l’aide d’un objet StreamWebSocket.
- StreamWebSocketControl.SupportedProtocols - Obtient une collection qui permet d’ajouter une liste des sous-protocoles pris en charge à publier auprès du serveur durant l’établissement d’une liaison de connexion.
Par exemple, étudions plus en détail l’option StreamWebSocketControl.NoDelay. Lors de la création de StreamWebSocket, cette option est définie par défaut sur true, ce qui désactive l’algorithme de Nagle. Toutefois, si StreamWebSocket est utilisé pour une application qui envoie de nombreux petits paquets et si la latence n’est pas un problème, l’algorithme de Nagle peut être activé en affectant à StreamWebSocketControl.NoDelay la valeur false afin de réduire le trafic réseau.
L’exemple suivant crée un objet StreamWebSocket et affecte à StreamWebSocketControl.NoDelay la valeur false. Après cela, l’application peut connecter le StreamWebSocket
var clientWebSocket = new Windows.Networking.Sockets.StreamWebSocket();
// Get the current setting for this option
// This isn't required, but it shows how to get the current setting
var currentSetting = clientWebSocket.control.noDelay;
// Set noDelay to false so that the Nagle algorithm isn't disabled
clientWebSocket.control.noDelay = false;
// Now you can call the ConnectAsync method to connect the StreamWebSocket.
Contrôles MessageWebSocket avancés
Nombre des options avancées de l’objet MessageWebSocket sont identiques à celles de l’objet StreamWebSocket, mais il existe quelques différences.
- MessageWebSocketControl.MaxMessageSize - Contrôle la taille maximale de message, en octets, pour un message WebSocket à configurer sur l’objet MessageWebSocket.
- MessageWebSocketControl.MessageType - Contrôle le type de message WebSocket (binaire ou UTF-8) à configurer sur un objet MessageWebSocket.
- MessageWebSocketControl.OutboundBufferSizeInBytes - Contrôle la taille, en octets, du tampon d’envoi à utiliser pour l’envoi de données sur un objet MessageWebSocket.
- MessageWebSocketControl.ProxyCredential - Fournit les informations d’identification à utiliser pour l’authentification auprès du serveur proxy via l’authentification d’en-tête HTTP à l’aide d’un objet MessageWebSocket.
- MessageWebSocketControl.ServerCredential - Fournit les informations d’identification à utiliser pour authentifier le serveur WebSocket via l’authentification d’en-tête HTTP à l’aide d’un objet MessageWebSocket.
- MessageWebSocketControl.SupportedProtocols - Obtient une collection qui permet d’ajouter une liste des sous-protocoles pris en charge à publier auprès du serveur durant l’établissement d’une liaison de connexion.
Les options d’un objet MessageWebSocket sont définies pratiquement de la même manière que dans l’exemple ci-dessus.
Remarques
Outre les données de contrôle, un ensemble similaire de classes associées donne accès à des informations supplémentaires sur ces classes principales :
- MessageWebSocketInformation - Fournit des informations de socket sur un objet MessageWebSocket.
- StreamWebSocketInformation - Fournit des informations de socket sur un objet StreamWebSocket.
Ces classes ont des propriétés qui fournissent des informations supplémentaires sur le socket.
Rubriques associées
Autre
Connexion à l’aide de sockets WebSocket
Comment établir une connexion à l’aide d’un MessageWebSocket
Comment établir une connexion à l’aide d’un StreamWebSocket
Comment sécuriser des connexions WebSocket avec TLS/SSL
Référence
Exemples