Compartir a través de


Cómo usar controles avanzados de WebSocket (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

En este tema, se explica cómo usar controles de sockets avanzados cuando se usan las características MessageWebSocket y StreamWebSocket en una aplicación de Windows en tiempo de ejecución.

Lo que debes saber

Tecnologías

Requisitos previos

  • En los ejemplos de este tema se utiliza JavaScript. Recomendamos tener conocimientos básicos de WebSockets.

Introducción a los controles avanzados de WebSocket

Las clases MessageWebSocket y StreamWebSocket siguen el mismo modelo a la hora de usar controles avanzados. En correspondencia con cada una de las clases principales mencionadas antes hay clases relacionadas para acceder a los controles avanzados:

El modelo básico para usar controles avanzados es el mismo para ambos tipos de WebSockets. En el siguiente ejemplo, usaremos StreamWebSocket, pero puede usarse el mismo proceso con MessageWebSocket.

La aplicación debe establecer siempre la propiedad en el StreamWebSocketControl antes de emitir una operación de conexión. Por eso, es mejor establecer las opciones avanzadas inmediatamente después de crear el socket. No intentes establecer una propiedad StreamWebSocketControl después de que un socket haya llamado al método ConnectAsync.

Controles avanzados de StreamWebSocket

Hay varias opciones avanzadas en el StreamWebSocket.

Como ejemplo, observemos la opción StreamWebSocketControl.NoDelay más detalladamente. La configuración predeterminada cuando se crea un StreamWebSocket es establecer esta opción en true, lo que deshabilita el algoritmo de Nagle. No obstante, si una aplicación que envía varios paquetes pequeños usará el StreamWebSocket y la latencia no es un problema, entonces el algoritmo Nagle podría habilitarse si se establece StreamWebSocketControl.NoDelay en false para reducir el tráfico de red.

El siguiente ejemplo crea un StreamWebSocket y establece StreamWebSocketControl.NoDelay en false. Una vez hecho esto, la aplicación puede conectarse con StreamWebSocket.

    var clientWebSocket = new Windows.Networking.Sockets.StreamWebSocket();

    // Get the current setting for this option
    // This isn't required, but it shows how to get the current setting
    var currentSetting = clientWebSocket.control.noDelay; 

    // Set noDelay to false so that the Nagle algorithm isn't disabled
    clientWebSocket.control.noDelay = false;
   
    // Now you can call the ConnectAsync method to connect the StreamWebSocket.

Controles avanzados de MessageWebSocket

Muchas de las opciones avanzadas de MessageWebSocket son las mismas que para StreamWebSocket, pero hay algunas diferencias.

La configuración de las opciones en un MessageWebSocket se realiza de manera muy similar al ejemplo anterior.

Observaciones

Además de controlar datos, un conjunto similar de clases relacionadas proporcionan acceso a información adicional sobre estas clases principales.

Estas clases tienen propiedades que proporcionan información adicional sobre el socket.

Temas relacionados

Otros

Conexión con WebSockets

Cómo conectar con un MessageWebSocket

Cómo conectar con un StreamWebSocket

Cómo proteger conexiones WebSocket con TLS/SSL

Referencia

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Muestras

Muestra de WebSocket