リアルタイムサーバーインターフェイス - Amazon GameLift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

リアルタイムサーバーインターフェイス

リアルタイムスクリプトが初期化を実行すると、リアルタイムサーバーへのインターフェイスが返されます。このトピックでは、インターフェイスを通じて使用できるプロパティとメソッドについて説明します。リアルタイムスクリプトの書き込み方法と詳細なスクリプト例につついては「リアルタイムスクリプトの作成」を参照してください。

リアルタイムインターフェイスは、以下のオブジェクトへのアクセスを提供します。

  • セッション

  • player

  • gameMessage

  • 設定

リアルタイムセッションオブジェクト

以下のメソッドを使用して、サーバー関連の情報にアクセスし、サーバー関連のアクションを実行します。

getPlayers()

現在ゲームセッションに接続しているプレイヤーのピア ID のリストを取得します。プレイヤーオブジェクトの配列を返します。

構文

rtSession.getPlayers()

broadcastGroupMembershipUpdate()

更新されたグループメンバーシップリストのプレイヤーグループへの配信をトリガーします。ブロードキャストするメンバーシップ (groupIdToBroadcast) と更新を受け取るグループ (targetGroupId) を指定します。グループ ID は、すべてのグループを示す正の整数または「-1」でなければなりません。ユーザー定義のグループ ID の例は「リアルタイムサーバースクリプト例」を参照してください。

構文

rtSession.broadcastGroupMembershipUpdate(groupIdToBroadcast, targetGroupId)

getServerId()

メッセージをサーバーにルーティングするために使用される、サーバーの一意のピア ID 識別子を取得します。

構文

rtSession.getServerId()

getAllPlayersGroupId()

現在ゲームセッションに接続しているすべてのプレイヤーを含むデフォルトグループのグループ ID を取得します。

構文

rtSession.getAllPlayersGroupId()

processEnding()

ゲームサーバーを終了するためにリアルタイムサーバーをトリガーします。この関数は、ゲームセッションから正常に終了するためのリアルタイムスクリプトから呼び出す必要があります。

構文

rtSession.processEnding()

getGameSessionId()

現在実行中のゲームセッションの一意の ID を取得します。

構文

rtSession.getGameSessionId()

getLogger()

ログ記録用のインターフェイスを取得します。この関数を使用して、ゲームセッションログに収集されるステートメントを記録します。ロガーは「info」、「warn」、および「error」ステートメントの使用をサポートしています。例: logger.info("<string>")

構文

rtSession.getLogger()

sendMessage()

newTextGameMessage または newBinaryGameMessage を使用して作成されたメッセージをリアルタイムサーバーからプレイヤー受信者に UDP チャネルで送信します。プレイヤーのピア ID を使用して受取人を識別します。

構文

rtSession.sendMessage(gameMessage, targetPlayer)

sendGroupMessage()

newTextGameMessage または newBinaryGameMessage を使用して作成されたメッセージをリアルタイムサーバーからプレイヤーグループ内のすべてのプレイヤーに UDP チャネルで送信します。グループ ID は、すべてのグループを示す正の整数または「-1」でなければなりません。ユーザー定義のグループ ID の例は「リアルタイムサーバースクリプト例」を参照してください。

構文

rtSession.sendGroupMessage(gameMessage, targetGroup)

sendReliableMessage()

newTextGameMessage または newBinaryGameMessage を使用して作成されたメッセージをリアルタイムサーバーからプレイヤー受信者に TCP チャネルで送信します。プレイヤーのピア ID を使用して受取人を識別します。

構文

rtSession.sendReliableMessage(gameMessage, targetPlayer)

sendReliableGroupMessage()

newTextGameMessage または newBinaryGameMessage を使用して作成されたメッセージをリアルタイムサーバーからプレイヤーグループ内のすべてのプレイヤーに TCP チャネルで送信します。グループ ID は、すべてのグループを示す正の整数または「-1」でなければなりません。ユーザー定義のグループ ID の例は「リアルタイムサーバースクリプト例」を参照してください。

構文

rtSession.sendReliableGroupMessage(gameMessage, targetGroup)

newTextGameMessage()

SendMessage 関数を使用してサーバーからプレイヤー受取人に送信される、テキストを含む新しいメッセージを作成します。メッセージ形式は、Realtime Client SDK で使用されている形式と同様です (「RTMessage」を参照)。gameMessage オブジェクトを返します。

構文

rtSession.newTextGameMessage(opcode, sender, payload)

newBinaryGameMessage()

SendMessage 関数を使用してサーバーからプレイヤー受取人に送信される、バイナリデータを含む新しいメッセージを作成します。メッセージ形式は、Realtime Client SDK で使用されている形式と同様です (「RTMessage」を参照)。gameMessage オブジェクトを返します。

構文

rtSession.newBinaryGameMessage(opcode, sender, binaryPayload)

プレイヤーオブジェクト

プレイヤー関連の情報にアクセスします。

player.peerId

ゲームクライアントがリアルタイムサーバーに接続してゲームセッションに参加したときに割り当てられる一意の ID。

player.playerSessionId

ゲームクライアントがリアルタイムサーバーに接続してゲームセッションに参加したときに参照したプレイヤーセッション ID。

ゲームメッセージオブジェクト

以下のメソッドを使用して、リアルタイムサーバーによって受信されたメッセージにアクセスします。ゲームクライアントから受信したメッセージは RTMessage 構造になっています。

getPayloadAsText()

ゲームメッセージのペイロードをテキストとして取得します。

構文

gameMessage.getPayloadAsText()

gameMessage.opcode

メッセージに含まれているオペレーションコード。

gameMessage.payload

メッセージに含まれているペイロード。テキストまたはバイナリです。

gameMessage.sender

メッセージを送信したゲームクライアントのピア ID。

gameMessage.reliable

メッセージが TCP (true) または UDP (false) のどちらで送信されたかを示すブール値。

設定オブジェクト

設定オブジェクトは、デフォルトの設定を上書きするために使用できます。

configuration.maxPlayers

リアルタイムサーバーで受け入れられるクライアント/サーバー接続の最大数。

デフォルトは 32 です。

configuration.pingIntervalTime

接続が正常であることを確認するために、サーバーが接続されているすべてのクライアントに ping を送信しようとする時間間隔(ミリ秒)。

デフォルトは 3000 ミリ秒です。