实时服务器接口 - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

实时服务器接口

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

实时接口提供对以下对象的访问:

  • session

  • player

  • gameMessage

  • configuration

实时会话对象

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

getPlayers()

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

语法

rtSession.getPlayers()

broadcastGroupMembership更新 ()

触发向玩家组传输更新后的组成员资格列表。指定要广播的成员资格(groupIdTo广播)和接收更新的群组(targetGroupId)。组 ID 必须为正整数或 “-1” 才能表示所有组。有关用户定义实时服务器脚本示例的群组 ID 的示例,请参见。

语法

rtSession.broadcastGroupMembershipUpdate(groupIdToBroadcast, targetGroupId)

getServerId()

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

语法

rtSession.getServerId()

getAllPlayersGroupId()

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

语法

rtSession.getAllPlayersGroupId()

ProcessEnding()

触发实时服务器终止游戏服务器。必须从 Realtime 脚本中调用此函数才能干净地退出游戏会话。

语法

rtSession.processEnding()

getGameSession身份证 ()

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

语法

rtSession.getGameSessionId()

getLogger()

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

语法

rtSession.getLogger()

sendMessage()

使用 UDP 频道将使用newTextGameMessagenewBinaryGameMessage创建的消息从实时服务器发送给玩家收件人。使用玩家的对等连接 ID 确认接收方。

语法

rtSession.sendMessage(gameMessage, targetPlayer)

sendGroupMessage()

使用 UDP 频道将使用newTextGameMessagenewBinaryGameMessage从实时服务器创建的消息发送给玩家组中的所有玩家。组 ID 必须为正整数或 “-1” 才能表示所有组。有关用户定义实时服务器脚本示例的群组 ID 的示例,请参见。

语法

rtSession.sendGroupMessage(gameMessage, targetGroup)

sendReliableMessage()

使用 TCP 通道将使用newTextGameMessagenewBinaryGameMessage创建的消息从实时服务器发送给玩家接收者。使用玩家的对等连接 ID 确认接收方。

语法

rtSession.sendReliableMessage(gameMessage, targetPlayer)

sendReliableGroup消息 ()

使用 TCP 通道将使用newTextGameMessagenewBinaryGameMessage从实时服务器创建的消息发送给玩家组中的所有玩家。组 ID 必须为正整数或 “-1” 才能表示所有组。有关用户定义实时服务器脚本示例的群组 ID 的示例,请参见。

语法

rtSession.sendReliableGroupMessage(gameMessage, targetGroup)

newTextGame消息 ()

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

语法

rtSession.newTextGameMessage(opcode, sender, payload)

newBinaryGame消息 ()

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

语法

rtSession.newBinaryGameMessage(opcode, sender, binaryPayload)

玩家对象

访问与玩家相关的信息。

player.peerId

当游戏客户端连接到实时服务器并加入游戏会话时分配给游戏客户端的唯一 ID。

玩家。 playerSessionId

游戏客户端连接到实时服务器并加入游戏会话时引用的玩家会话 ID。

游戏消息对象

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

getPayloadAs文本 ()

以文本形式获取游戏消息有效载荷。

语法

gameMessage.getPayloadAsText()

gameMessage.opcode

消息中包含的操作代码。

gameMessage.payload

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

gameMessage.sender

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

gameMessage.reliable

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

配置对象

配置对象可用于覆盖默认配置。

配置。最大玩家数

可以接受的最大客户端/服务器连接数RealTimeServers。

默认值为 32。

配置。 pingIntervalTime

服务器尝试向所有连接的客户端发送 ping 命令以验证连接是否正常的时间间隔(以毫秒为单位)。

默认值为 3000 毫秒。