Langue

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

Configuration requise Description
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’ensemble du message WebSocket est lu ou écrit en une seule opération. En revanche, StreamWebSocket permet aux sections d’un message d’être lues avec chaque opération de lecture, plutôt que d’exiger que le message entier soit lu dans 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 provenir d’erreurs de validation de paramètre, d’échecs de résolution de noms et d’erreurs réseau. Les exceptions des erreurs réseau (perte de connectivité, échecs de connexion et échecs de serveur HTTP, par exemple) peuvent se produire à tout moment. Ces erreurs entraînent 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.

Le Windows. L’espace de noms Networking.Sockets a une méthode d’assistance et une énumération pratiques pour la gestion des erreurs lors de l’utilisation de WebSockets. Cela peut être utile pour gérer des exceptions réseau spécifiques différemment dans votre application. Une application peut également utiliser HRESULT à partir de l’exception sur les erreurs de validation de paramètre pour en savoir plus sur l’erreur qui a provoqué l’exception.

Pour plus d’informations sur les exceptions possibles et sur la gestion des 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 le Windows. L’espace de noms Networking.Sockets ne peut pas être chargé, sauf si la fonctionnalité Media Foundation est activée. Par conséquent, les applications qui utilisent MessageWebSocket et les classes WebSocket associées dans le Windows. L’espace de noms Networking.Sockets échoue si la fonctionnalité Media Foundation est désactivée. Windows Server 2012 ou Windows Server 2012 R2 est installé 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é, classes pour les sockets et webSockets dans le Windows. L’espace de noms Networking.Sockets fonctionne comme prévu.

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1607 14393 ServerCustomValidationRequested
1803 17134 SendFinalFrameAsync
1803 17134 SendNonfinalFrameAsync

Constructeurs

Nom Description
MessageWebSocket()

Crée un objet MessageWebSocket .

Propriétés

Nom Description
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

Nom Description
Close()

Ferme l’objet MessageWebSocket et envoie un cadre de fermeture vide au serveur.

Close(UInt16, String)

Ferme l’objet MessageWebSocket et indique une 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()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées.

SendFinalFrameAsync(IBuffer)

De façon asynchrone (avec progression) écrit une trame de données dans un flux séquentiel, avec la sémantique qui s’agit du dernier frame d’un message WebSocket (le bit FIN sur ce frame est défini sur 1). Cette méthode et SendNonfinalFrameAsync vous permettent d’envoyer des images WebSocket individuelles.

SendNonfinalFrameAsync(IBuffer)

De façon asynchrone (avec la 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 sur ce frame 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 l’établissement d’une liaison de protocole WebSocket par l’objet MessageWebSocket .

Événements

Nom Description
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é (wss : protocole) 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