接続フロー
Connect players through the Allocations service and Relay servers.
読み終わるまでの所要時間 2 分最終更新 8日前
接続フローとは、割り当てサービス が Relay サーバー にスロットを予約し、複数のプレイヤーを 1 つのマッチにグループ化するプロセスのことです。このプロセスには、ホストプレイヤーと参加プレイヤーの 2 種類の プレイヤー が関与します。接続プロセスに関わるおおまかなステップは、以下のとおりです。
- ホストプレイヤーが割り当てをリクエストする
- 割り当てサービスが Relay サーバーを選択する
- 割り当てサービスがホストプレイヤーに接続データを送信する
- ホストプレイヤーを Relay サーバーにバインドする
- ホストプレイヤーが参加コードをリクエストする
- 割り当てサービスがホストプレイヤーに参加コードを返す
- ホストプレイヤーが参加コードを参加プレイヤーと共有する
- 参加プレイヤーが参加コードを使用する
- 割り当てサービスが参加プレイヤーに接続データを送信する
- 参加プレイヤーを Relay サーバーにバインドする
- 参加プレイヤーが接続リクエストを送信する
ホストプレイヤーが割り当てをリクエストする
ホストプレイヤーは、割り当てサービスから割り当てをリクエストすることで、接続フローを開始します。割り当てリクエストには、その割り当てで許可される接続の最大数が含まれます。また、具体的な 地域 も含まれます。リクエストに地域が含まれない場合、割り当てサービスは QoS を使用してそのリクエストに最適な地域を選択します。割り当てサービスが Relay サーバーを選択する
割り当てサービスがホストプレイヤーのリクエストを受け取り、適切な Relay サーバーを選択します。選択される Relay サーバーは、許可される最大接続数と、地域によって変わります。 割り当てサービスが Relay サーバーを見つけると、ゲームセッションのためにその Relay サーバー上にスペースを予約します。また、この時点で Relay サーバーで一意の秘密鍵が生成されます。Relay サーバーが、Relay サーバー IP、Relay サーバーポート、接続データ に加え、秘密鍵を割り当てサービスに返します。割り当てサービスがホストプレイヤーに接続データを送信する
割り当てサービスがホストプレイヤーのゲームクライアントに Relay サーバーの接続データを送信します。ホストプレイヤーを Relay サーバーにバインドする
ホストが割り当てリクエストのレスポンスから受け取ったデータを使用して、選択された Relay サーバーにBINDBINDBIND_RECEIVEDホストプレイヤーが参加コードをリクエストする
Relay サーバーにバインドされたホストプレイヤーは、割り当てサービスから 参加コード をリクエストできます。割り当てサービスがホストプレイヤーに参加コードを返す
割り当てサービスが参加コードを生成し、ホストプレイヤーに返します。割り当てサービスが返す参加コードは、ホストプレイヤーが Relay サーバーに割り当てられたことを一意に表し、参加プレイヤーを同じ Relay サーバーにバインドし、ホストプレイヤーとつながることを許可します。ホストプレイヤーが参加コードを参加プレイヤーと共有する
ホストプレイヤーがさまざまなメソッド (口頭、テキストメッセージ、Lobby など) を通じて、他のプレイヤーと一意の参加コードを共有します。参加コードは短く覚えやすいので、簡単に共有できます。 割り当てサービスへの参加リクエストで参加コードを使用するプレイヤーが、参加プレイヤーになります。参加プレイヤーが参加コードを使用する
参加プレイヤーがホストプレイヤーから受け取った参加コードを使用して、割り当てサービスに参加リクエストを送信します。割り当てサービスが参加プレイヤーに接続データを送信する
割り当てサービスが参加コードを使用してホストプレイヤーの割り当てを検出し、そのデータを参加プレイヤーに返します。 割り当てサービスからのレスポンスには Relay サーバー IP アドレス、Relay サーバーポート、秘密鍵、参加プレイヤーの暗号化された接続データ、参加プレイヤーの割り当て ID、ホストの暗号化された接続データが含まれます。これで参加プレイヤーが秘密鍵を使用して解読し、ホストの接続データを使用してホストに接続できるようになります。参加プレイヤーを Relay サーバーにバインドする
参加プレイヤーが、割り当てサービスへの参加リクエストのレスポンスから受け取った接続データを使用して、BINDBIND_RECEIVED