Usar WebSockets

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En este tema se explica cómo usar WebSockets con Apigee y Apigee hybrid.

Introducción

Hay muchas situaciones en las que las interacciones web deben producirse en tiempo real, como los juegos, las comunicaciones, las transacciones financieras y otras actividades de alto rendimiento.

WebSocket es un protocolo que proporciona un canal de comunicación bidireccional entre un cliente web y un servidor web a través de una única conexión TCP. El protocolo WebSocket usa el protocolo HTTP para establecer la conexión entre el cliente y el servidor. Una vez establecida, el cliente y el servidor usan el protocolo WebSocket para enviar y recibir datos.

El protocolo y la especificación WebSockets los mantiene el consorcio W3C.

Compatibilidad con WebSockets en Apigee

En Apigee y Apigee hybrid, los grupos de entornos proporcionan rutas a los entornos y definen los nombres de host en los que se exponen los proxies de API. Los grupos de entornos admiten de forma nativa los protocolos HTTP y WS. No es necesario que cree un grupo de entornos especial ni ninguna configuración especial para usar WebSockets. En su lugar, es el cliente quien debe solicitar un cambio de protocolo de HTTP a WS incluyendo el encabezado de solicitud Upgrade. Una solicitud de actualización realizada a un endpoint de proxy de API devuelve una respuesta 101 Switching Protocols. Las solicitudes y respuestas posteriores se realizan de forma bidireccional en la conexión WebSockets abierta hasta que se cierra.

Asistencia sobre políticas

Todas las políticas funcionarán en un proxy de socket web hasta que se complete la negociación (es decir, hasta que se devuelva la respuesta HTTP 101 al cliente). Después, no se ejecutará ninguna política, pero los tokens de OAuth validados antes de la negociación seguirán siendo válidos y la conexión se interrumpirá si el token caduca o se revoca.

Revocar la conexión

La conexión WebSockets se cierra cuando:

  • El endpoint del proxy recibe una solicitud sin una clave de API o un token de OAuth.
  • El endpoint del proxy recibe una solicitud con una clave de API o un token de OAuth no válidos o caducados.
  • Se agota el tiempo de espera de la conexión WebSockets.

Usar el seguimiento y las analíticas

En la herramienta Depuración, por cada conexión WebSockets, verás una solicitud con el estado 101, como se muestra en la siguiente captura de pantalla:

Solicitud con el estado 101 en la herramienta Depuración.

En el panel de control de analíticas de Apigee, verá el tráfico contabilizado de cada sesión de WebSockets. El tráfico de ida y vuelta que se produce durante la sesión no se muestra en el panel de control.

Aplicación de ejemplo de WebSockets

Para obtener más información, puedes consultar una aplicación de websocket-sample en GitHub. En la muestra se explica cómo llamar a un proxy de API a través de una conexión WebSockets. El proxy llama a una aplicación de destino de backend sencilla que se ha desplegado en tu clúster de Kubernetes.