Partager via


MessageWebSocket Classe

Définition

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

public ref class MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket : 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 MessageWebSocket : System.IDisposable
function MessageWebSocket()
Public NotInheritable Class MessageWebSocket
Implements IDisposable
Héritage
Object Platform::Object IInspectable MessageWebSocket
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 MessageWebSocket fournit une abstraction basée sur les messages du protocole WebSocket. Lorsque vous utilisez MessageWebSocket, l’intégralité du message WebSocket est lu ou écrit en une seule opération. En revanche, 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.

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

Gestion des exceptions

Vous devez écrire du code pour gérer les exceptions lorsque vous appelez des méthodes asynchrones sur la classe MessageWebSocket. 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 MessageWebSocket 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 MessageWebSocket 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
1803 17134 SendFinalFrameAsync
1803 17134 SendNonfinalFrameAsync

Constructeurs

MessageWebSocket()

Crée un objet MessageWebSocket .

Propriétés

Control

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

Information

Obtient des informations de socket sur un objet MessageWebSocket .

OutputStream

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

Méthodes

Close()

Ferme l’objet MessageWebSocket et envoie un cadre fermé vide au serveur.

Close(UInt16, String)

Ferme l’objet MessageWebSocket 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 MessageWebSocket .

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.

SendFinalFrameAsync(IBuffer)

De manière asynchrone (avec progression) écrit une trame de données dans un flux séquentiel, avec la sémantique qu’il s’agit de la dernière image d’un message WebSocket (le bit FIN de cette image est défini sur 1). Cette méthode et SendNonfinalFrameAsync vous permettent d’envoyer des images WebSocket individuelles.

SendNonfinalFrameAsync(IBuffer)

De manière asynchrone (avec progression) écrit une trame de données dans un flux séquentiel, avec la sémantique que d’autres images suivront pour le même message WebSocket (le bit FIN de cette image est défini sur 0). Cette méthode et SendFinalFrameAsync vous permettent d’envoyer des images WebSocket individuelles.

SetRequestHeader(String, String)

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

Événements

Closed

Se produit lorsqu’un cadre de fermeture est reçu sur l’objet MessageWebSocket dans le cadre de la négociation de fermeture.

MessageReceived

Événement qui indique qu’un message a été reçu sur l’objet MessageWebSocket .

ServerCustomValidationRequested

Se produit lorsqu’une nouvelle connexion MessageWebSocket à 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