Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Front Door Standard ✔️ Front Door Premium
Azure Front Door admite WebSocket en los niveles Estándar y Premium sin necesidad de configuraciones adicionales. WebSocket, estandarizado en RFC6455, es un protocolo basado en TCP que facilita la comunicación dúplex completa entre un servidor y un cliente a través de una conexión TCP de larga duración. Elimina la necesidad de sondear según sea necesario en HTTP y evita parte de la sobrecarga de HTTP. Puede reutilizar la misma conexión TCP para varias solicitudes o respuestas, lo que da lugar a un uso más eficaz de los recursos. Esto permite escenarios más interactivos y en tiempo real.
WebSocket es ideal para las aplicaciones que necesitan actualizaciones en tiempo real o flujos de datos continuos, como aplicaciones de chat, paneles, actualizaciones financieras, GPS, educación en línea, streaming en vivo y juegos. Por ejemplo, un sitio web de trading puede usar WebSocket para insertar y actualizar los datos de precios en tiempo real.
Uso de WebSocket en Azure Front Door
Al usar WebSocket en Azure Front Door, tenga en cuenta lo siguiente:
- Una vez que se actualiza una conexión a WebSocket, Azure Front Door transmite datos entre clientes y el servidor de origen sin realizar ninguna inspección o manipulación durante la conexión establecida.
- Las inspecciones de Firewall de Aplicaciones Web (WAF) se aplican durante la fase de establecimiento de un WebSocket. Una vez establecida la conexión, WAF no realiza más inspecciones.
- Los sondeos de estado a los orígenes se realizan mediante el protocolo HTTP.
- Deshabilite el almacenamiento en caché para las rutas de WebSocket. En el caso de las rutas con el almacenamiento en caché habilitado, Azure Front Door no reenvía el encabezado Actualización de WebSocket al origen y lo trata como una solicitud HTTP, sin tener en cuenta las reglas de caché. Esto da como resultado una solicitud de actualización de WebSocket con error.
- El tiempo de espera de inactividad es de 5 minutos. Si Azure Front Door no detecta ninguna transmisión de datos desde el origen o el cliente en los últimos 5 minutos, la conexión se considera inactiva y está cerrada.
- Actualmente, las conexiones de WebSocket en Azure Front Door permanecen abiertas durante no más de 4 horas. La conexión de WebSocket se puede quitar debido a actualizaciones de servidor subyacentes u otras actividades de mantenimiento. Se recomienda implementar la lógica de reintento en la aplicación.
- Actualmente, cada perfil de Azure Front Door admite hasta 3000 conexiones globales simultáneas. Para más información, consulte Límites de servicio Estándar y Premium de Azure Front Door.
Funcionamiento del protocolo WebSocket
Los protocolos WebSocket usan el puerto 80 para las conexiones WebSocket estándar y el puerto 443 para las conexiones WebSocket a través de TLS/SSL. Como protocolo con estado, la conexión entre los clientes y el servidor permanece activa hasta que cualquiera de las partes finalice. Las conexiones de WebSocket comienzan como una solicitud de actualización HTTP con el esquema ws:
o wss:
. Estas conexiones se establecen mediante la actualización de una solicitud/respuesta HTTP mediante el Connection: Upgrade
, Upgrade: websocket
, Sec-WebSocket-Key
y encabezados Sec-WebSocket-Version
, como se muestra en los ejemplos de encabezado de solicitud.
El protocolo de enlace del cliente tiene el siguiente aspecto:
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
El servidor responde con un código de estado 101 Switching Protocols
para indicar que cambia al protocolo WebSocket según lo solicite el cliente. La respuesta incluye los encabezados Connection: Upgrade
y Upgrade: websocket
, confirmando el modificador de protocolo. El encabezado Sec-WebSocket-Accept
se devuelve para validar que la conexión se actualizó correctamente.
El apretón de manos del servidor se ve de la siguiente manera:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat
Una vez que el cliente recibe la respuesta del servidor, la conexión WebSocket está abierta para empezar a transmitir datos. Si el cliente o el servidor desconectan la conexión WebSocket o una interrupción de la red, se espera que la aplicación cliente vuelva a iniciar la conexión con el servidor.
Pasos siguientes
- Aprenda a crear un perfil de Azure Front Door.
- Obtenga información sobre cómo Azure Front Door enruta el tráfico a su origen.