Compartir a través de


Conexión con WebSockets (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

Envía y recibe datos mediante WebSockets para proporcionar una comunicación bidireccional, en tiempo real, segura y de baja latencia usando las funciones del espacio de nombres Windows.Networking.Sockets.

¿Qué son los WebSockets?

El protocolo WebSocket define un mecanismo para una comunicación bidireccional, rápida y segura entre un cliente y un servidor a través de Internet. Los datos se transfieren inmediatamente a través de una conexión de dúplex completo de un solo socket, lo que permite que ambos extremos reciban y envíen mensajes en tiempo real. WebSockets son ideales para las aplicaciones de Windows en tiempo de ejecución que incluyen juegos en tiempo real, notificaciones instantáneas de redes sociales, presentación actualizada de cotizaciones o información meteorológica, y otras aplicaciones que requieren una transferencia de datos segura y rápida. WebSockets también funciona mediante proxies y firewalls puesto que el Protocolo WebSocket utiliza de forma predeterminada los mismos puertos que utilizan los exploradores web (HTTP y HTTPS).

Para establecer una conexión WebSocket, se intercambia un protocolo de enlace de conexión específico, basado en HTTP, entre el cliente y el servidor. Si se realiza correctamente, el protocolo de nivel de aplicación se "actualiza" de HTTP a WebSockets, usando la conexión TCP establecida anteriormente. Una vez que esto ocurre, HTTP queda totalmente fuera del juego. Cualquiera de los extremos puede enviar o recibir los datos mediante el protocolo WebSocket en cualquier momento, hasta que se cierre la conexión WebSocket.

Importante  Un cliente no puede usar WebSockets para transferir datos a menos que el servidor también use el protocolo WebSocket. Si el servidor no admite WebSockets, debes usar otro método de transferencia de datos.

 

El espacio de nombres Windows.Networking.Sockets proporciona soporte para WebSockets de cliente de Windows en tiempo de ejecución. Windows 8.1 proporciona compatibilidad para WebSockets de cliente y servidor para aplicaciones de escritorio.

El espacio de nombres Windows.Networking.Sockets define dos tipos de objetos WebSocket para su uso por parte de los clientes en aplicaciones de Windows en tiempo de ejecución: MessageWebSocket y StreamWebSocket. La siguiente tabla describe los dos tipos de WebSockets.

MessageWebSocket StreamWebSocket
Adecuados para situaciones típicas donde los mensajes no son demasiado grandes. Adecuados para escenarios en los cuales se están transfiriendo archivos grandes (tales como fotos o películas).
Habilita la notificación de que se recibió un mensaje WebSocket completo. Permite que se lean secciones de un mensaje con cada operación de lectura.
Es compatible con UTF-8 y mensajes binarios. Es compatible solamente con mensajes binarios.
Un poco comparable con un socket UDP (DatagramSocket). Un poco comparable con un socket TCP (StreamSocket).

 

Uso de WebSockets con aislamiento de red

La característica de aislamiento de red de Windows en tiempo de ejecución permite al desarrollador controlar y limitar el acceso a la red de una aplicación de Windows en tiempo de ejecución. No todas las aplicaciones necesitarán tener acceso a la red. No obstante, para las aplicaciones que sí deben acceder, Windows en tiempo de ejecución proporciona distintos niveles de acceso a la red que pueden habilitarse seleccionando las funcionalidades que correspondan.

El aislamiento de red permite al desarrollador definir el ámbito de acceso a la red requerido para cada aplicación. Si una aplicación no tiene definido el ámbito de acceso apropiado, no podrá acceder al tipo especificado de red ni al tipo específico de solicitud de red (las solicitudes salientes iniciadas por el cliente o ambas, las solicitudes entrantes no solicitadas y las solicitudes salientes iniciadas por el cliente). La capacidad de establecer y exigir el aislamiento de red garantiza que si una aplicación se compromete, solo puede acceder a las redes a las que se le haya concedido acceso de forma explícita. Esto reduce significativamente el ámbito del impacto en otras aplicaciones y en Windows.

El aislamiento de red afecta a todos los elementos de clase en el espacio de nombres Windows.Networking.Sockets que intentan acceder a la red. Windows aplica de manera activa el aislamiento de red. Si no se ha habilitado la funcionalidad de red que corresponde, una llamada a un método de la clase MessageWebSocket o StreamWebSocket en el espacio de nombres Windows.Networking.Sockets que implique el acceso a la red puede presentar errores debido al aislamiento de red.

Las funcionalidades de red para una aplicación se configuran en su manifiesto al crear la aplicación. Las capacidades de red se suelen agregar con Visual Studio 2013 Update 2 al desarrollar la aplicación. Las funcionalidades de red también pueden establecerse de forma manual en el manifiesto mediante el uso de un editor de texto.

Si quieres obtener información más detallada acerca del aislamiento de red, consulta Cómo establecer las funcionalidades de red.

Audiencia del desarrollador

Los ejemplos de los siguientes temas usan JavaScript y se basan en la muestra de WebSocket. Para obtener ayuda sobre cómo crear una aplicación Windows en tiempo de ejecución con JavaScript, consulta Guía básica para crear aplicaciones de Windows en tiempo de ejecución con JavaScript.

En esta sección

Tema Descripción
Cómo conectar con un MessageWebSocket

Detalla los requisitos y los pasos específicos para usar un MessageWebSocket para enviar y recibir datos de un servidor web.

Cómo conectar con un StreamWebSocket

Detalla los requisitos y los pasos específicos para usar un StreamWebSocket para enviar y recibir datos de un servidor web.

Cómo usar controles avanzados de WebSocket

Explica cómo usar controles avanzados de socket para establecer opciones en un objeto WebSocket.

Cómo proteger conexiones WebSocket con TLS/SSL

Explica cómo proteger conexiones WebSocket con Seguridad de la capa de transporte (TLS)/Capa de sockets seguros (SSL).

 

Más información acerca de características similares y relacionadas

Sección Descripción
Cómo configurar las funcionalidades de aislamiento de red

Explica la característica de aislamiento de red y cómo configurar las funcionalidades de aislamiento de red para controlar totalmente el acceso a la red de una aplicación de la Tienda Windows.

Conexiones de red con sockets

Detalla los requisitos y los pasos específicos para usar sockets para enviar y recibir datos de un recurso de red.

Agregar soporte para funciones de red

Contiene información sobre cómo agregar soporte para funciones de red para la aplicación.

Solución de problemas y conexiones de red de depuración

Proporciona sugerencias e información para ayudar a solucionar problemas de conexión.

 

Temas relacionados

Otros

Guía básica para crear aplicaciones de Windows en tiempo de ejecución con JavaScript

Referencia

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Muestras

Muestra de WebSocket