Lenguaje

MessageWebSocket Clase

Definición

Admite la comunicación de red que permite leer y escribir mensajes completos mediante 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
Herencia
Object Platform::Object IInspectable MessageWebSocket
Atributos
Implementaciones

Requisitos de Windows

Requisitos Description
Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
Características de aplicaciones
internetClient privateNetworkClientServer

Comentarios

La clase MessageWebSocket proporciona una abstracción basada en mensajes del protocolo WebSocket. Cuando se usa MessageWebSocket, todo el mensaje de WebSocket se lee o escribe en una sola operación. En cambio, StreamWebSocket permite leer secciones de un mensaje con cada operación de lectura, en lugar de requerir que todo el mensaje se lea en una sola operación.

Para los mensajes UTF-8, se debe usar MessageWebSocket. StreamWebSocket solo admite mensajes binarios.

Control de excepciones

Debe escribir código para controlar excepciones al llamar a métodos asincrónicos en la clase MessageWebSocket. Las excepciones pueden deberse a errores de validación de parámetros, errores de resolución de nombres y errores de red. Las excepciones de errores de red (pérdida de conectividad, errores de conexión y errores de servidor HTTP, por ejemplo) pueden producirse en cualquier momento. Estos errores provocan que se produzcan excepciones. Si no lo controla la aplicación, una excepción puede hacer que el tiempo de ejecución finalice toda la aplicación.

El Windows. El espacio de nombres Networking.Sockets tiene un práctico método auxiliar y una enumeración para controlar errores al usar WebSockets. Esto puede ser útil para controlar excepciones de red específicas de forma diferente en la aplicación. Una aplicación también puede usar HRESULT de la excepción en los errores de validación de parámetros para obtener información más detallada sobre el error que provocó la excepción.

Para obtener más información sobre las posibles excepciones y cómo controlar las excepciones, consulte Control de excepciones en aplicaciones de red.

Uso de MessageWebSocket en Windows Server 2012

En Windows Server 2012 y Windows Server 2012 R2, el Windows.Networking.dll que implementa la mayoría de las clases del Windows. El espacio de nombres Networking.Sockets no se cargará a menos que la característica de Media Foundation esté habilitada. Como resultado, las aplicaciones que usan MessageWebSocket y las clases WebSocket relacionadas en el Windows. Se producirá un error en el espacio de nombres Networking.Sockets si la característica de Media Foundation está deshabilitada. Windows Server 2012 o Windows Server 2012 R2 se instala con la característica media Foundation deshabilitada.

La característica media Foundation se puede habilitar en Windows Server 2012 o Windows Server 2012 R2 mediante Administrador del servidor o escribiendo el texto siguiente en un símbolo del sistema o en un script:

dism /online /enable-feature /featurename:ServerMediaFoundation Una vez habilitada la característica media Foundation, se le pedirá al usuario que reinicie. Una vez reiniciado el equipo, las clases para sockets y WebSockets en el Windows. El espacio de nombres Networking.Sockets funcionará según lo previsto.

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1607 14393 ServerCustomValidationRequested
1803 17134 SendFinalFrameAsync
1803 17134 SendNonfinalFrameAsync

Constructores

Nombre Description
MessageWebSocket()

Crea un nuevo objeto MessageWebSocket .

Propiedades

Nombre Description
Control

Obtiene datos de control de socket en un objeto MessageWebSocket .

Information

Obtiene información de socket en un objeto MessageWebSocket .

OutputStream

Obtiene el flujo de salida que se va a escribir en el destino de red remota en un objeto MessageWebSocket .

Métodos

Nombre Description
Close()

Cierra el objeto MessageWebSocket y envía un marco de cierre vacío al servidor.

Close(UInt16, String)

Cierra el objeto MessageWebSocket e indica un motivo para el cierre.

ConnectAsync(Uri)

Inicia una operación asincrónica para conectarse a un destino de red remota en un objeto MessageWebSocket .

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación, liberación o restablecimiento de recursos no administrados.

SendFinalFrameAsync(IBuffer)

De forma asincrónica (con progreso) escribe un marco de datos en una secuencia secuencial, con la semántica de que este es el último fotograma de un mensaje WebSocket (el bit FIN de este fotograma se establece en 1). Este método y SendNonfinalFrameAsync permiten enviar marcos WebSocket individuales.

SendNonfinalFrameAsync(IBuffer)

De forma asincrónica (con progreso) escribe un marco de datos en una secuencia secuencial, con la semántica que seguirán más fotogramas para el mismo mensaje de WebSocket (el bit FIN de este fotograma se establece en 0). Este método y SendFinalFrameAsync permiten enviar marcos WebSocket individuales.

SetRequestHeader(String, String)

Agrega un encabezado de solicitud HTTP al mensaje de solicitud HTTP usado en el protocolo de enlace del protocolo WebSocket por el objeto MessageWebSocket .

Eventos

Nombre Description
Closed

Se produce cuando se recibe un marco de cierre en el objeto MessageWebSocket como parte del protocolo de enlace de cierre.

MessageReceived

Evento que indica que se recibió un mensaje en el objeto MessageWebSocket .

ServerCustomValidationRequested

Se produce cuando se está validando una nueva conexión de MessageWebSocket a un URI de servidor protegido (wss: protocolo). Controle este evento si desea implementar la validación de servidor personalizada para la conexión.

Se aplica a

Consulte también