Compartir a través de


MessageWebSocket Clase

Definición

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

Requisitos de Windows

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 las 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 los 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 hacen que se arrojen excepciones. Si la aplicación no la controla, una excepción puede hacer que el tiempo de ejecución finalice toda la aplicación.

El espacio de nombres Windows.Networking.Sockets tiene un práctico método auxiliar y enumeración para controlar errores al usar WebSockets. Esto puede ser útil para controlar de un modo diferente excepciones de red específicas 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.

Usar 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 espacio de nombres Windows.Networking.Sockets no se cargará a menos que la característica media Foundation esté habilitada. Como resultado, las aplicaciones que usan MessageWebSocket y las clases WebSocket relacionadas en el espacio de nombres Windows.Networking.Sockets producirán un error si la característica 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 se reinicie. Una vez reiniciado el equipo, las clases para sockets y WebSockets en el espacio de nombres Windows.Networking.Sockets funcionarán 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

MessageWebSocket()

Crea un nuevo objeto MessageWebSocket .

Propiedades

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

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 o al 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 que 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 utilizado en el protocolo de enlace del protocolo WebSocket por el objeto MessageWebSocket .

Eventos

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 valida 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