Compartir a través de


Información general Socket.IO en Azure

Socket.IO es una biblioteca de código abierto muy popular para la mensajería en tiempo real entre clientes y un servidor. La administración de conexiones con estado y persistentes entre clientes y un servidor suele ser una fuente de frustración para los usuarios de Socket.IO. El problema es más agudo cuando varias instancias de Socket.IO se distribuyen entre servidores.

Azure proporciona una solución en la nube totalmente administrada para Socket.IO. Esta compatibilidad elimina la carga de implementar, hospedar y coordinar instancias de Socket.IO para los desarrolladores. Después, los equipos de desarrollo pueden centrarse en la creación de experiencias en tiempo real mediante api conocidas de la biblioteca de Socket.IO.

Arquitectura simplificada

Esta característica elimina la necesidad de un componente de servidor "adaptador" al escalar horizontalmente una aplicación de Socket.IO, lo que permite al equipo de desarrollo obtener las ventajas de una arquitectura simplificada.

Screenshot of a typical architecture of a fully managed Socket.IO app.

Ventajas sobre el hospedaje de una aplicación de Socket.IO usted mismo

En la tabla siguiente se muestran las ventajas de usar la solución totalmente administrada de Azure.

Elemento Hospedaje de una aplicación de Socket.IO usted mismo Uso de Socket.IO en Azure
Implementación Administrado por el cliente Administrado por Azure
Hospedar aplicaciones de WPF El cliente debe aprovisionar suficientes recursos de servidor para atender y mantener conexiones persistentes Administrado por Azure
Escalado de conexiones Cliente administrado mediante un componente del lado servidor denominado adaptador Azure administrado con más de 100 000 conexiones de cliente lista para usar
Garantía de tiempo de actividad Administrado por el cliente Azure administrado con más del 99,9 % de tiempo de actividad
Seguridad de clase empresarial Administrado por el cliente Administrado por Azure
Sistema de soporte técnico de incidencias No aplicable Administrado por Azure

Al hospedar una aplicación de Socket.IO usted mismo, los clientes establecen conexiones de WebSocket o sondeo largo directamente con el servidor. Mantener estas conexiones con estado supone una carga pesada en el servidor de Socket.IO. Esta carga limita el número de conexiones simultáneas y aumenta la latencia de mensajería.

Un enfoque común para cumplir el desafío de simultaneidad y latencia es escalar horizontalmente a varios servidores Socket.IO. El escalado horizontal requiere un componente del lado servidor denominado adaptador, como el adaptador de Redis que proporciona la biblioteca de Socket.IO. Sin embargo, este adaptador presenta un componente adicional que debe implementar y administrar. También requiere que escriba lógica de código adicional para que las cosas funcionen correctamente.

Diagram of a typical architecture of a self-hosted Socket.IO app.

Con Socket.IO en Azure, se le libera de controlar problemas de escalado e implementar la lógica de código relacionada con el uso de un adaptador.

Mismo modelo de programación

Para migrar una aplicación de Socket.IO autohospedada a Azure, agregue solo algunas líneas de código. No es necesario cambiar el resto del código de la aplicación. En otras palabras, el modelo de programación sigue siendo el mismo y se reduce la complejidad de administrar una aplicación en tiempo real.