翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
WebSocket ベースのバックエンドを備えたスタンドアロンのゲームセッションサーバー
この Amazon API Gateway WebSocket ベースのアーキテクチャを使用すると、WebSockets でマッチメーキングリクエストを行い、サーバーが開始するメッセージを使用して、マッチメーキングの完了のプッシュ通知を送信することができます。このアーキテクチャにより、クライアントとサーバー間の双方向通信が可能になり、パフォーマンスが向上します。
API Gateway WebSock API の使用に関する詳細については、「WebSocket API の使用」を参照してください。
次の図は、API Gateway などを使用してプレイヤー AWS のサービス をAmazon GameLift Serversフリートで実行されているゲームにマッチングする WebSocket ベースのバックエンドアーキテクチャを示しています。次のリストには、図内の各番号付きの吹き出しについての説明が含まれます。
-
ゲームクライアントは Amazon Cognito アイデンティティプールから Amazon Cognito ユーザー ID をリクエストします。
-
ゲームクライアントは Amazon Cognito 認証情報を使用して、API Gateway API への WebSocket 接続に署名します。
-
API Gateway は、接続で AWS Lambda 関数を呼び出します。この関数は接続情報を Amazon DynamoDB テーブルに保存します。
-
ゲームクライアントは、WebSocket 接続で API Gateway API を介して Lambda 関数にメッセージを送信し、セッションをリクエストします。
-
Lambda 関数はメッセージを受信し、Amazon GameLift Servers FlexMatch マッチメーキングを通じて一致をリクエストします。
-
がプレイヤーのグループFlexMatchを照合すると、 は Amazon GameLift Serversキューを介してゲームセッションの配置をFlexMatchリクエストします。
-
Amazon GameLift Servers がフリートのいずれかのロケーションにセッションを配置すると、Amazon GameLift Servers は Amazon Simple Notification Service (Amazon SNS) トピックにイベント通知を送信します。
-
Lambda 関数は Amazon SNS イベントを受け取り、それを処理します。
-
マッチメーキングチケットが
MatchmakingSucceededイベントの場合、Lambda 関数は DynamoDB から正しいプレイヤー接続をリクエストします。次に、この関数は WebSocket 接続で API Gateway API を介してゲームクライアントにメッセージを送信します。このアーキテクチャでは、ゲームクライアントはマッチメーキングのステータスを積極的にポーリングしません。 -
ゲームクライアントは、WebSocket 接続を介してゲームサーバーのポートと IP アドレスをプレイヤーセッション ID と共に受け取ります。
-
ゲームクライアントは、バックエンドサービスが提供するポートと IP アドレスを使用して、TCP または UDP によってゲームサーバーに接続します。次に、ゲームクライアントはプレイヤーセッション ID をゲームサーバーに送信し、ゲームサーバー側でのサーバー SDK for Amazon GameLift Servers を使用してその ID を検証します。