Partager via


StreamWebSocket Classe

Définition

Prend en charge la communication réseau qui permet de lire et d’écrire des flux à l’aide d’un WebSocket.

public ref class StreamWebSocket sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamWebSocket final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamWebSocket final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamWebSocket : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamWebSocket : System.IDisposable
function StreamWebSocket()
Public NotInheritable Class StreamWebSocket
Implements IDisposable
Héritage
Object Platform::Object IInspectable StreamWebSocket
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
Fonctionnalités de l’application
internetClient privateNetworkClientServer

Remarques

La classe StreamWebSocket fournit une abstraction basée sur le flux du protocole WebSocket basé sur les messages. Cela est utile pour les scénarios dans lesquels des fichiers volumineux (tels que des photos ou des films) doivent être transférés. L’utilisation de StreamWebSocket permet de lire des sections d’un message à chaque opération de lecture, plutôt que d’exiger la lecture de l’intégralité du message en une seule opération (comme avec MessageWebSocket).

StreamWebSocket prend uniquement en charge les messages binaires. Pour les messages UTF-8, MessageWebSocket doit être utilisé.

Gestion des exceptions

Vous devez écrire du code pour gérer les exceptions lorsque vous appelez des méthodes asynchrones sur la classe StreamWebSocket. Les exceptions peuvent résulter d’erreurs de validation de paramètres, d’échecs de résolution de noms et d’erreurs réseau. Des exceptions aux erreurs réseau (perte de connectivité, échecs de connexion et échecs de serveur HTTP, par exemple) peuvent se produire à tout moment. Ces erreurs donnent lieu à la levée d’exceptions. Si elle n’est pas gérée par votre application, une exception peut entraîner l’arrêt de l’ensemble de votre application par le runtime.

L’espace de noms Windows.Networking.Sockets dispose d’une méthode d’assistance et d’une énumération pratiques pour gérer les erreurs lors de l’utilisation de WebSockets. Ceci peut s’avérer utile pour gérer différemment certaines exceptions réseau dans votre application. Une application peut également utiliser le HRESULT de l’exception sur les erreurs de validation de paramètre pour obtenir des informations plus détaillées sur l’erreur à l’origine de l’exception.

Pour plus d’informations sur les exceptions possibles et sur la façon de gérer les exceptions, consultez Gestion des exceptions dans les applications réseau.

Utilisation de StreamWebSocket sur Windows Server 2012

Sur Windows Server 2012 et Windows Server 2012 R2, le Windows.Networking.dll qui implémente la plupart des classes dans l’espace de noms Windows.Networking.Sockets ne parvient pas à se charger, sauf si la fonctionnalité Media Foundation est activée. Par conséquent, les applications qui utilisent StreamWebSocket et les classes WebSocket associées dans l’espace de noms Windows.Networking.Sockets échouent si la fonctionnalité Media Foundation est désactivée. Windows Server 2012 ou Windows Server 2012 R2 s’installe avec la fonctionnalité Media Foundation désactivée.

La fonctionnalité Media Foundation peut être activée sur Windows Server 2012 ou Windows Server 2012 R2 à l’aide de Gestionnaire de serveur ou en entrant le texte suivant dans une invite de commandes ou un script :

dism /online /enable-feature /featurename:ServerMediaFoundation Une fois la fonctionnalité Media Foundation activée, l’utilisateur est invité à redémarrer. Une fois l’ordinateur redémarré, les classes pour les sockets et webSockets dans l’espace de noms Windows.Networking.Sockets fonctionnent comme prévu.

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1607 14393 ServerCustomValidationRequesteded

Constructeurs

StreamWebSocket()

Crée un objet StreamWebSocket .

Propriétés

Control

Obtient les données de contrôle de socket sur un objet StreamWebSocket .

Information

Obtient des informations de socket sur un objet StreamWebSocket .

InputStream

Obtient le flux d’entrée à lire à partir de la destination distante sur un objet StreamWebSocket .

OutputStream

Obtient le flux de sortie à écrire dans la destination réseau distante sur un objet StreamWebSocket .

Méthodes

Close()

Ferme le StreamWebSocket et envoie un cadre proche vide au serveur.

Close(UInt16, String)

Ferme streamWebSocket et indique la raison de la fermeture.

ConnectAsync(Uri)

Démarre une opération asynchrone pour se connecter à une destination réseau distante sur un objet StreamWebSocket .

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

SetRequestHeader(String, String)

Ajoute un en-tête de requête HTTP au message de requête HTTP utilisé dans la négociation du protocole WebSocket par l’objet StreamWebSocket .

Événements

Closed

Se produit lorsqu’une image de fermeture est reçue sur l’objet StreamWebSocket dans le cadre de la négociation de fermeture.

ServerCustomValidationRequested

Se produit lorsqu’une nouvelle connexion StreamWebSocket à un URI de serveur sécurisé (protocole wss : ) est validée. Gérez cet événement si vous souhaitez implémenter la validation de serveur personnalisée pour la connexion.

S’applique à

Voir aussi