Amazon GameLift ServersRealtime 介面 - Amazon GameLift Servers

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon GameLift ServersRealtime 介面

當Amazon GameLift ServersRealtime指令碼初始化時,會傳回Realtime伺服器的界面。本主題會說明透過界面可使用的屬性和方法。在 建立Realtime指令碼中進一步了解撰寫 Realtime 指令碼及檢視詳細的指令碼範例。

Realtime 界面提供存取下列物件:

  • 工作階段

  • player

  • gameMessage

  • 組態

Realtime 工作階段物件

使用這些方法來存取伺服器相關的資訊,及執行伺服器相關的動作。

getPlayers()

擷取目前連線到遊戲工作階段的玩家對等端 ID 清單。傳回玩家物件的陣列。

語法

rtSession.getPlayers()

broadcastGroupMembershipUpdate()

觸發將更新後的群組成員資格清單交付至玩家群組。指定要公開的成員資格 (groupIdToBroadcast) 以及要接收更新的群組 (targetGroupId)。群組 IDs 必須是正整數或 "-1",以表示所有群組。Amazon GameLift ServersRealtime 指令碼範例 如需使用者定義群組 IDs的範例,請參閱 。

語法

rtSession.broadcastGroupMembershipUpdate(groupIdToBroadcast, targetGroupId)

getServerId()

擷取伺服器的唯一對等端 ID 識別符,用來將訊息路由至伺服器。

語法

rtSession.getServerId()

getAllPlayersGroupId()

擷取預設群組的群組 ID,該群組包含所有目前連線至遊戲工作階段的玩家。

語法

rtSession.getAllPlayersGroupId()

processEnding()

觸發 Realtime 伺服器終止遊戲伺服器。此函數必須從 Realtime 指令碼呼叫,以正常地從遊戲工作階段結束。

語法

rtSession.processEnding()

getGameSessionId()

擷取目前正在執行的遊戲工作階段唯一 ID。

語法

rtSession.getGameSessionId()

getLogger()

擷取記錄日誌的界面。使用此方法來記錄將在您遊戲工作階段日誌中擷取的陳述式。記錄器支援使用 "info"、"warn" 和 "error" 陳述式。例如:logger.info("<string>")

語法

rtSession.getLogger()

sendMessage()

使用 UDP 管道,從 Realtime 伺服器將使用 newTextGameMessagenewBinaryGameMessage 建立的訊息傳送至玩家收件人。使用玩家的對等端 ID 識別收件人。

語法

rtSession.sendMessage(gameMessage, targetPlayer)

sendGroupMessage()

使用 UDP 管道,從 Realtime 伺服器將使用 newTextGameMessagenewBinaryGameMessage 建立的訊息傳送至玩家群組中所有的玩家。群組 IDs 必須是正整數或 "-1",以表示所有群組。Amazon GameLift ServersRealtime 指令碼範例 如需使用者定義群組 IDs的範例,請參閱 。

語法

rtSession.sendGroupMessage(gameMessage, targetGroup)

sendReliableMessage()

使用 TCP 管道,從 Realtime 伺服器將使用 newTextGameMessagenewBinaryGameMessage 建立的訊息傳送至玩家收件人。使用玩家的對等端 ID 識別收件人。

語法

rtSession.sendReliableMessage(gameMessage, targetPlayer)

sendReliableGroupMessage()

使用 TCP 管道,從 Realtime 伺服器將使用 newTextGameMessagenewBinaryGameMessage 建立的訊息傳送至玩家群組中所有的玩家。群組 IDs 必須是正整數或 "-1",以表示所有群組。Amazon GameLift ServersRealtime 指令碼範例 如需使用者定義群組 IDs的範例,請參閱 。

語法

rtSession.sendReliableGroupMessage(gameMessage, targetGroup)

newTextGameMessage()

建立包含文字的新訊息,使用 SendMessage 函數從伺服器傳送至玩家收件人。訊息格式類似於適用於 的用戶端 SDK 中使用的格式 Realtime(請參閱 RTMessage)。其會傳回 gameMessage 物件。

語法

rtSession.newTextGameMessage(opcode, sender, payload)

newBinaryGameMessage()

建立包含二進位資料的新訊息,使用 SendMessage 函數從伺服器傳送至玩家收件人。訊息格式類似於適用於 的用戶端 SDK 中使用的格式 Realtime(請參閱 RTMessage)。其會傳回 gameMessage 物件。

語法

rtSession.newBinaryGameMessage(opcode, sender, binaryPayload)

玩家物件

存取玩家相關資訊。

player.peerId

連線到 Realtime 伺服器並加入遊戲工作階段時,指派給遊戲用戶端的唯一 ID。

player.playerSessionId

連線到 Realtime 伺服器並加入遊戲工作階段時,遊戲用戶端參考的玩家工作階段 ID。

遊戲訊息物件

使用這些方法來存取 Realtime 伺服器接收到的訊息。從遊戲用戶端接收到的訊息具有 RTMessage 結構。

getPayloadAsText()

以文字形式取得遊戲訊息承載。

語法

gameMessage.getPayloadAsText()

gameMessage.opcode

訊息中包含的作業碼。

gameMessage.payload

訊息中包含的承載。可能是文字或二進位。

gameMessage.sender

傳送訊息的遊戲用戶端對等端 ID。

gameMessage.reliable

布林值,指出訊息是透過 TCP (true) 還是 UDP (false) 傳送。

組態物件

組態物件可用來覆寫預設組態。

configuration.maxPlayers

RealTimeServers 可接受的最大用戶端/伺服器連線數。

預設值為 32。

configuration.pingIntervalTime

伺服器將嘗試將 ping 傳送至所有連線用戶端以確認連線狀態良好的時間間隔,以毫秒為單位。

預設值為 3000 毫秒。