View a markdown version of this page

Servidores de sesión de juego independientes con un backend basado WebSocket - Amazon GameLift Servers

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Servidores de sesión de juego independientes con un backend basado WebSocket

Con una arquitectura WebSocket basada en Amazon API Gateway, puede realizar solicitudes de emparejamiento WebSockets y enviar notificaciones push para completar el emparejamiento mediante mensajes iniciados por el servidor. Esta arquitectura mejora el rendimiento mediante una comunicación bidireccional entre el cliente y el servidor.

Para obtener más información sobre el uso de API Gateway WebSock APIs, consulte Trabajar con WebSocket APIs.

El siguiente diagrama muestra una arquitectura de backend WebSocket basada en la que se utiliza API Gateway y otros Servicios de AWS para unir a los jugadores en juegos que se ejecutan en Amazon GameLift Servers flotas. La siguiente lista proporciona una descripción de cada aviso numerado en el diagrama.

Ejemplo de WebSockets arquitectura que hace coincidir a los jugadores con juegos que se ejecutan en Amazon GameLift Servers flotas.
  1. El cliente del juego solicita una identidad de usuario de Amazon Cognito de un grupo de identidades de Amazon Cognito.

  2. El cliente del juego firma una WebSocket conexión a una API API Gateway con las credenciales de Amazon Cognito.

  3. API Gateway llama a una AWS Lambda función de la conexión. La función almacena la información de conexión en una tabla de Amazon DynamoDB.

  4. El cliente del juego envía un mensaje a una función Lambda, a través de la API API Gateway a través de la WebSocket conexión, para solicitar una sesión.

  5. Una función de Lambda recibe el mensaje y, a continuación, solicita un emparejamiento mediante el emparejamiento de Amazon GameLift Servers FlexMatch.

  6. Tras una FlexMatch partida, un grupo de jugadores FlexMatch solicita que la sesión de juego se sitúe en una Amazon GameLift Servers cola.

  7. Cuando Amazon GameLift Servers coloca la sesión en una de las ubicaciones de la flota, Amazon GameLift Servers envía una notificación de evento a un tema de Amazon Simple Notification Service (Amazon SNS).

  8. Una función de Lambda recibe el evento de Amazon SNS y lo procesa.

  9. Si el ticket de emparejamiento es un evento MatchmakingSucceeded, la función de Lambda solicita a DynamoDB la conexión de jugador correcta. A continuación, la función envía un mensaje al cliente del juego a través de la API API Gateway a través de la WebSocket conexión. En esta arquitectura, el cliente del juego no consulta activamente el estado del emparejamiento.

  10. El cliente del juego recibe el puerto y la dirección IP del servidor del juego, junto con el ID de sesión del jugador, a través de la WebSocket conexión.

  11. El cliente del juego se conecta al servidor de juegos mediante TCP o UDP mediante el puerto y la dirección IP que proporciona el servicio de backend. El cliente del juego también envía el ID de sesión del jugador al servidor de juegos, que lo valida mediante el SDK del servidor de Amazon GameLift Servers.