Amazon GameLift
开发人员指南 (版本 )
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Realtime Servers 接口

Realtime 脚本初始化时,返回与 Realtime Server 的接口。本主题介绍了可通过接口使用的属性和方法。了解有关编写 Realtime 脚本的更多信息,并在创建 Realtime 脚本中查看详细的脚本示例。

该 Realtime 接口提供对以下对象的访问:

  • session

  • player

  • gameMessage

Realtime 会话对象

使用这些方法来访问与服务器相关的信息和执行与服务器相关的操作。

getPlayers()

检索当前连接到游戏的玩家的对等连接 ID 列表。返回一组玩家对象。

语法

rtSession.getPlayers()

broadcastGroupMembershipUpdate()

触发向玩家组传输更新后的组成员资格列表。指定要广播的成员资格 (groupIdToBroadcast) 和接收更新的组 (targetGroupId)。

语法

rtSession.broadcastGroupMembershipUpdate(groupIdToBroadcast, targetGroupId)

getServerId()

检索服务器的唯一对等连接 ID 标识符,这用于将消息路由到服务器。

语法

rtSession.getServerId()

getAllPlayersGroupId()

检索默认组的组 ID,该组包含当前连接到游戏会话的所有玩家。

语法

rtSession.getAllPlayersGroupId()

ProcessEnding()

触发 Realtime Server 来终止游戏服务器。必须从 Realtime 脚本调用此函数以从游戏会话中完全退出。

语法

rtSession.processEnding()

GetGameSessionId()

检索当前正在运行的游戏会话的唯一 ID。

语法

rtSession.getGameSessionId()

getLogger()

检索用于日志记录的接口。使用此项来记录将捕获到游戏会话日志中的语句。日志记录程序支持使用“info”、“warn”和“error”语句。例如:logger.info("<string>")

语法

rtSession.getLogger()

sendMessage()

发送消息,该消息使用 newTextGameMessagenewBinaryGameMessage 创建,通过 UDP 通道从 Realtime Server 发送到玩家接收方。使用玩家的对等连接 ID 确认接收方。

语法

rtSession.sendMessage(gameMessage, targetPlayer)

sendGroupMessage()

发送消息,该消息使用 newTextGameMessagenewBinaryGameMessage 创建,通过 UDP 通道从 Realtime Server 发送到玩家组中的所有玩家。使用组 ID 确定接收方。

语法

rtSession.sendGroupMessage(gameMessage, targetGroup)

sendReliableMessage()

发送消息,该消息使用 newTextGameMessagenewBinaryGameMessage 创建,通过 TCP 通道从 Realtime Server 发送到玩家接收方。使用玩家的对等连接 ID 确认接收方。

语法

rtSession.sendReliableMessage(gameMessage, targetPlayer)

sendReliableGroupMessage()

发送消息,该消息使用 newTextGameMessagenewBinaryGameMessage 创建,通过 TCP 通道从 Realtime Server 发送到玩家组中的所有玩家。使用组 ID 确定接收方。

语法

rtSession.sendReliableGroupMessage(gameMessage, targetGroup)

newTextGameMessage()

创建包含文本的新消息,使用 SendMessage 函数将该消息从服务器发送到玩家接收方。消息格式类似于在 Realtime 客户端开发工具包中使用的格式(请参阅 RTMessage)。返回 gameMessage 对象。

语法

rtSession.newTextGameMessage(opcode, sender, payload)

newBinaryGameMessage()

创建包含二进制数据的新消息,该消息使用 SendMessage 函数,从服务器发送到玩家接收方。消息格式类似于在 Realtime 客户端开发工具包中使用的格式(请参阅 RTMessage)。返回 gameMessage 对象。

语法

rtSession.newBinaryGameMessage(opcode, sender, binaryPayload)

玩家对象

访问与玩家相关的信息。

player.peerId

连接到 Realtime Server 和加入游戏会话时分配到游戏客户端的唯一 ID。

player.playerSessionId

玩家会话 ID 由游戏客户端在连接到 Realtime Server 和加入游戏会话时引用。

游戏消息对象

使用这些方法可以访问 Realtime 服务器收到的消息。从游戏客户端收到的消息具有 RTMessage 结构。

gameMessage.opcode

消息中包含的操作代码。

gameMessage.payload

消息中包含的有效负载。可以是文本或二进制数据。

gameMessage.sender

发送消息的游戏客户端的对等连接 ID。

gameMessage.reliable

布尔值,指示通过 TCP (true) 还是 UDP (false) 发送消息。