StreamWebSocket Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Admite la comunicación de red que permite leer y escribir secuencias mediante 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
- Herencia
- 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 StreamWebSocket proporciona una abstracción basada en secuencias del protocolo WebSocket basado en mensajes. Esto es útil para escenarios en los que es necesario transferir archivos grandes (como fotos o películas). El uso de 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 (como con MessageWebSocket).
StreamWebSocket solo admite mensajes binarios. Para los mensajes UTF-8, se debe usar MessageWebSocket .
Control de excepciones
Debe escribir código para controlar las excepciones al llamar a métodos asincrónicos en la clase StreamWebSocket. 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.
Uso de StreamWebSocket 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 StreamWebSocket 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 de 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 |
Constructores
StreamWebSocket() |
Crea un nuevo objeto StreamWebSocket . |
Propiedades
Control |
Obtiene datos de control de socket en un objeto StreamWebSocket . |
Information |
Obtiene información de socket en un objeto StreamWebSocket . |
InputStream |
Obtiene el flujo de entrada que se va a leer desde el destino remoto en un objeto StreamWebSocket . |
OutputStream |
Obtiene el flujo de salida que se va a escribir en el destino de red remota en un objeto StreamWebSocket . |
Métodos
Close() |
Cierra StreamWebSocket y envía un marco de cierre vacío al servidor. |
Close(UInt16, String) |
Cierra StreamWebSocket 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 StreamWebSocket . |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
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 StreamWebSocket . |
Eventos
Closed |
Se produce cuando se recibe un marco de cierre en el objeto StreamWebSocket como parte del protocolo de enlace de cierre. |
ServerCustomValidationRequested |
Se produce cuando se valida una nueva conexión de StreamWebSocket a un URI de servidor protegido (wss: protocolo). Controle este evento si desea implementar la validación de servidor personalizada para la conexión. |