Relay サーバー
Relay サービスを使用すると、プレイヤー同士が Relay サーバーを通じて通信できるようにすることで、専用ゲームサーバーを必要とせずにマルチプレイヤーを簡単にサポートできます。Relay サーバーはゲームクライアント間の待ち時間の少ないデータグラム交換を使用して接続プレイヤー間でメッセージを送信するため、2 人のプレイヤーが互いに直接接続することはありません。Relay サーバーは、1 人のプレイヤー (ホストプレイヤー) が “サーバー” として機能し、他のプレイヤー (参加プレイヤー) が “クライアント” として機能する、リッスンサーバーパターンを使用したゲームに最適です。
Relay サーバーは、すべてのプレイヤーがアクセスできる公開エンドポイントとして機能します。この設計により、ネットワークと IP アドレスの変更、ネットワークアドレス変換 (NAT)、プレイヤー間のファイアウォールに関する一般的な問題に対処できます。各プレイヤーは同じ IP アドレスとポート (選択された Relay サーバーの IP アドレスとポート) に接続でき、ゲームクライアントはゲームセッション全体にわたって接続情報が同じままであることを信頼できます。この間接的接続により、ゲームセッションに参加するプレイヤーはお互いの IP アドレスを知る必要がなくなり、セキュリティとプライバシーが向上します。
容量
ホストプレイヤーのゲームクライアントは、割り当てを作成する際に、ゲームセッションでサポートされるプレイヤーの最大数を定義します。
Relay サーバーのライフサイクル
Relay サーバーは、長時間稼働するマルチテナント接続ポイントとして設計されています。そのため、Relay サーバーのライフルサイクルはゲームセッションのライフサイクルとは独立しています。
Relay サーバーは、プレイヤーの接続のタイムアウト 時にプレイヤーを切断します。Relay がクライアントを切断するまでのデフォルトの生存時間 (TTL、time to live) は、10 秒 です。ホスト単独の場合の切断までの TTL は、60 秒 (BIND
メッセージの後かつ CONNECT
メッセージとともにピアがそれらに接続される前) です。意図しないタイムアウトを回避するために、ゲームクライアントは Relay サーバーに定期的に PING
メッセージ を送信して 接続を維持する ことができます。
プレイヤー またはゲーム クライアント は、CLOSE
メッセージ を送信することで、いつでも Relay サーバー から明示的に切断できます。