Eigenständige Spielsitzungsserver mit einem WebSocket basierten Backend - Amazon GameLift Servers

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Eigenständige Spielsitzungsserver mit einem WebSocket basierten Backend

Mithilfe einer auf Amazon API Gateway WebSocket basierenden Architektur können Sie mithilfe serverinitiierter Nachrichten Matchmaking-Anfragen stellen WebSockets und Push-Benachrichtigungen für den Abschluss des Matchmakings senden. Diese Architektur verbessert die Leistung durch eine bidirektionale Kommunikation zwischen dem Client und dem Server.

Weitere Informationen zur Verwendung von API Gateway WebSock APIs finden Sie unter Arbeiten mit WebSocket APIs.

Das folgende Diagramm zeigt eine WebSocket basierte Backend-Architektur, die API Gateway und andere verwendet, um Spielern Spiele AWS-Services zuzuordnen, die auf Amazon GameLift Servers Flotten laufen. Die folgende Liste enthält eine Beschreibung für jeden nummerierten Callout im Diagramm.

WebSockets Beispielarchitektur, die Spieler Spielen zuordnet, die auf Amazon GameLift Servers Flotten laufen.
  1. Der Spielclient fordert eine Amazon Cognito Cognito-Benutzeridentität aus einem Amazon Cognito Cognito-Identitätspool an.

  2. Der Spielclient signiert eine WebSocket Verbindung zu einer API-Gateway-API mit den Amazon Cognito Cognito-Anmeldeinformationen.

  3. API Gateway ruft eine AWS Lambda Funktion für die Verbindung auf. Die Funktion speichert die Verbindungsinformationen in einer Amazon DynamoDB-Tabelle.

  4. Der Spielclient sendet über die API Gateway über die WebSocket Verbindung eine Nachricht an eine Lambda-Funktion, um eine Sitzung anzufordern.

  5. Eine Lambda-Funktion empfängt die Nachricht und fordert dann über Amazon GameLift Servers FlexMatch Matchmaking eine Übereinstimmung an.

  6. Nach FlexMatch Spielen FlexMatch fordert eine Gruppe von Spielern über eine Warteschlange eine Platzierung für eine Spielsitzung anAmazon GameLift Servers.

  7. After Amazon GameLift Servers platziert die Sitzung an einem der Standorte der Flotte und Amazon GameLift Servers sendet eine Ereignisbenachrichtigung an ein Amazon Simple Notification Service (Amazon SNS) -Thema.

  8. Eine Lambda-Funktion empfängt das Amazon SNS SNS-Ereignis und verarbeitet es.

  9. Wenn es sich bei dem Matchmaking-Ticket um ein MatchmakingSucceeded Ereignis handelt, fordert die Lambda-Funktion die richtige Spielerverbindung von DynamoDB an. Die Funktion sendet dann über die API Gateway über die WebSocket Verbindung eine Nachricht an den Spielclient. In dieser Architektur fragt der Spielclient den Status der Spielersuche nicht aktiv ab.

  10. Der Spielclient erhält über die WebSocket Verbindung den Port und die IP-Adresse des Spielservers sowie die Sitzungs-ID des Spielers.

  11. Der Spielclient stellt über TCP oder UDP eine Verbindung zum Spieleserver her und verwendet dabei den Port und die IP-Adresse, die der Backend-Dienst bereitstellt. Der Spielclient sendet außerdem die Sitzungs-ID des Spielers an den Spieleserver, der die ID dann mithilfe des Server-SDK für validiert. Amazon GameLift Servers