WebSocket <webSocket>
Vue d’ensemble
L’élément <webSocket>
spécifie l’utilisation du module WebSocketModule avec ASP.NET 4.5 pour prendre en charge l’écriture d’applications serveur qui communiquent via le protocole WebSocket. WebSocket vous permet de fournir des communications duplex complètes sur une seule connexion TCP à l’aide d’un flux de messages plutôt qu’un flux d’octets. Cela facilite la connexion aux sources de données de manière asynchrone dans les déploiements cloud.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <webSocket> n’a fait l’objet d’aucune modification dans IIS 10.0. |
IIS 8.5 | L’élément <webSocket> n’a fait l’objet d’aucune modification dans IIS 8.5. |
IIS 8.0 | L’élément <webSocket> a été introduit dans IIS 8.0. |
IIS 7.5 | S/O |
IIS 7.0 | S/O |
IIS 6.0 | S/O |
Programme d’installation
Windows Server 2012 ou Windows Server 2012 R2
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
- Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
- Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
- Dans la page rôles de serveur, développez serveur web (IIS), développez serveur web, développez développement d’applications, puis sélectionnez protocole WebSocket. Sélectionnez Suivant.
. - Dans la page Sélectionner des fonctionnalités, cliquez sur Suivant.
- Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows 8 ou Windows 8.1
- Dans l’écran d’accueil, déplacez le pointeur jusqu’au coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration. Dans Panneau de configuration, cliquez sur programmes et fonctionnalités, puis sur activer ou désactiver les fonctionnalités Windows.
- Développez Internet Information Services, développez World Wide Web Services, développez fonctionnalités de développement d’applications, puis sélectionnez protocole WebSocket.
- Cliquez sur OK.
- Cliquez sur Fermer.
Procédure
Comment utiliser l’API IWebSocketContext
Les développeurs peuvent utiliser l’API IWebSocketContext pour créer des applications qui implémentent des communications bidirectionnelles et entièrement duplex entre le client et le serveur, en envoyant des flux de messages au lieu d’octets. L’API IWebSocketContext expose les API nécessaires pour lire/écrire des données WebSocket.
Si une demande entrante doit être acceptée en tant que requête WebSocket et ultérieurement mise à niveau, le gestionnaire doit définir l’état de la réponse sur 101. Il doit lancer un vidage IHttpResponse->, ce qui déclenchera le module WebSocket IIS pour effectuer le travail nécessaire pour envoyer la réponse 101 au client.
Une fois la réponse envoyée, le gestionnaire peut obtenir un pointeur vers IWebSocketContext via l’API GetNamedContext3 de IHttpContext3.
Pour plus d’informations, consultez interface IWebSocketContext.
Guide pratique pour configurer webSocket
Ouvrez le Gestionnaire des services Internet (IIS) :
Si vous utilisez Windows Server 2012 ou version ultérieure :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows 8 ou version ultérieure :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
Dans le volet Connexions, sélectionnez le nom du serveur pour configurer WebSocket pour le serveur, ou développez Sites, puis sélectionnez un site pour configurer WebSocket pour le site, ou développez un site, puis sélectionnez une application pour configurer WebSocket pour l’application.
Dans le volet Accueil, double-cliquez sur la fonctionnalité éditeur de configuration.
Pour un site ou une application, sélectionnez web.config ou applicationHost.config dans la zone de texte À partir de.
Sélectionnez system.webServer/webSocket dans la section zone de texte.
Définissez
enabled
sur True pour activer webSocket ou False pour désactiver webSocket. Définissez pingInterval et receiveBufferLimit sur les valeurs souhaitées.Cliquez sur Appliquer dans le volet Actions.
Configuration
L’élément <webSocket>
est configuré au niveau du serveur, du site ou de l’application.
Attributs
Attribut | Description |
---|---|
enabled |
Attribut booléen facultatif. Permet aux applications serveur de communiquer via le protocole WebSocket. La valeur par défaut est true . |
pingInterval |
Attribut timeSpan facultatif. Intervalle auquel un test ping est envoyé via une connexion WebSocket. La valeur par défaut est 00:00:00 . |
receiveBufferLimit |
Attribut uint facultatif. Taille maximale de la mémoire tampon de réception pour une connexion WebSocket. La valeur par défaut est 4194304 . |
Éléments enfants
Aucune.
Exemple Configuration
L’exemple suivant affiche un élément <webSocket>.
<system.webServer>
<webSocket
enabled="true"
receiveBufferLimit="4194304"
pingInterval="00:01:00">
</webSocket>
</system.webServer>
Exemple de code
L’exemple de code suivant configure <webSocket> pour un site.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/webSocket /enabled:"True" /receiveBufferLimit:"4194304" /pingInterval:"00:00:10" /commit:apphost
Remarque
Vous devez vous assurer que le paramètre commit est défini sur lorsque vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection webSocketSection = config.GetSection("system.webServer/webSocket", "Default Web Site");
webSocketSection["enabled"] = true;
webSocketSection["receiveBufferLimit"] = 4194304;
webSocketSection["pingInterval"] = TimeSpan.Parse("00:00:10");
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim webSocketSection As ConfigurationSection = config.GetSection("system.webServer/webSocket", "Default Web Site")
webSocketSection("enabled") = true
webSocketSection("receiveBufferLimit") = 4194304
webSocketSection("pingInterval") = TimeSpan.Parse("00:00:10")
serverManager.CommitChanges
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var webSocketSection = adminManager.GetAdminSection("system.webServer/webSocket", "MACHINE/WEBROOT/APPHOST/Default Web Site");
webSocketSection.Properties.Item("enabled").Value = true;
webSocketSection.Properties.Item("receiveBufferLimit").Value = 4194304;
webSocketSection.Properties.Item("pingInterval").Value = "00:00:10";
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set webSocketSection = adminManager.GetAdminSection("system.webServer/webSocket", "MACHINE/WEBROOT/APPHOST/Default Web Site")
webSocketSection.Properties.Item("enabled").Value = true
webSocketSection.Properties.Item("receiveBufferLimit").Value = 4194303
webSocketSection.Properties.Item("pingInterval").Value = "00:00:20"
adminManager.CommitChanges()
PowerShell
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/webSocket" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/webSocket" -name "receiveBufferLimit" -value 4194303
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/webSocket" -name "pingInterval" -value "00:00:20"