Las aplicaciones de baja latencia normalmente requieren un medio de comunicación más rápido que el HTTP puede ofrecer. Algunos ejemplos incluyen juegos multijugador en línea o aplicaciones de chat donde se necesitan comunicaciones interactivas en tiempo real para proporcionar la experiencia de usuario adecuada. WebSockets es un protocolo de comunicación en tiempo real que permite una conexión abierta, continua y bidireccional entre un cliente y un servidor. Esto permite enviar datos a un cliente (es decir, un navegador), incluso sin que el cliente tenga que solicitarlos. Con el protocolo HTTP, el servidor solo responde si el cliente envía una solicitud.
Las instituciones financieras son otro caso de uso para WebSockets. Recientemente, trabajamos con un importante banco norteamericano utilizando el protocolo WebSocket para establecer una conexión abierta para que su servidor de origen envíe notificaciones en tiempo real cada vez que las operaciones se realizan sin que el cliente las haga.
¿Cómo funciona el protocolo WebSocket?
Las conexiones WebSocket comienzan como conexiones HTTP regulares. Para establecer una conexión WebSocket, el cliente y el servidor actualizan desde el protocolo HTTP al protocolo WebSocket durante su handshake inicial (este switch de protocolo se conoce como handshake WebSocket). Para iniciar esta actualización, el cliente envía una solicitud al servidor utilizando los siguientes encabezados:
-
Conexión: Actualización: Indica que el cliente quiere cambiar el protocolo
-
Actualización: WebSocket – indica que el protocolo solicitado es “WebSocket”
Si el servidor entiende el protocolo WebSocket y acepta el switch, envía de vuelta un código de respuesta especial: 101 (Protocolos de conmutación) con los mismos dos encabezados. En ese punto, la conexión HTTP se reemplaza por la conexión WebSocket a través de la misma conexión TCP/IP subyacente. Una vez establecidos, los marcos de datos WebSocket se pueden enviar de ida y vuelta entre el cliente y el servidor en modo full-duplex hasta que un lado cierra la conexión.
Los beneficios clave de WebSockets sobre HTTP incluyen:
-
Conexión persistente: No es necesario que el cliente reinicie con frecuencia las conexiones para comprobar si hay nuevos datos.
-
Latencia más baja: WebSockets utilizan una sobrecarga mínima. Debido a que hay una conexión continua, la sobrecarga normal asociada con las solicitudes HTTP, como encabezados y otra información, ya no necesita ser enviada, lo que reduce la latencia.
-
Comunicación full-duplex: WebSockets ofrece comunicaciones bidireccionales entre el servidor y el cliente para que ambas partes puedan comunicarse e intercambiar datos al mismo tiempo. Edgecast, ahora Edgio, se complace en ofrecer soporte para el protocolo WebSocket en toda nuestra red de entrega mundial. A medida que avanzamos en la era de la IoT y la computación perimetral, el protocolo WebSocket beneficiará a las empresas que desean ofrecer aplicaciones de baja latencia en el perímetro.