本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Streams 开始 GameLift 直播会话
本节介绍直播会话,即最终用户或玩家可以与您的应用程序交互或玩游戏的直播的实际实例。您将学习如何测试自己的直播会话并了解直播会话的生命周期。
要启动面向最终用户的直播会话,您必须将 Amazon GameLift Streams 集成到您自己的服务中。有关更多信息,请参阅Amazon GameLift Streams 后端服务和网络客户端。
关于直播会话
启动直播会话的先决条件是应用程序和具有可用活动容量的直播组。流会话在流组分配的计算资源或流容量上运行。启动直播时,必须使用直播组和应用的 ARN 或 ID 值指定要进行流式传输的应用程序。
成功启动直播会话后,您将收到该直播会话的唯一标识符。然后,使用该 ID 将直播会话连接到最终用户。有关更多信息,请参阅 Amazon GameLift Streams API 参考StartStreamSession中的。
在控制台中测试直播
测试应用程序流传输方式的最直接方法是通过 Amazon GameLift Streams 控制台。当您启动直播时,Amazon Stre GameLift ams 会使用您的直播组分配的计算资源之一。因此,您的直播组中必须有可用容量。
在 Amazon Stream GameLift s 控制台中测试您的直播
-
登录 AWS Management Console 并打开 Amazon GameLift Streams 控制台
。 -
您可以通过多种方式测试直播。从直播群组页面或测试直播页面开始,然后按照以下步骤操作:
-
选择要用于直播的直播组。
-
如果您从直播组页面开始,请选择测试直播。如果您从 “测试直播” 页面开始,请选择 “选择”。这将打开所选直播组的测试直播配置页面。
-
在关联的应用程序中,选择一个应用程序。
-
在位置中,选择具有可用容量的位置。
-
(可选)在程序配置中,输入要在应用程序启动时传递给应用程序的命令行参数或环境变量。
-
确认您的选择,然后选择测试直播。
-
-
直播加载后,你可以在直播中执行以下操作:
-
要连接输入,例如鼠标、键盘和游戏手柄(测试直播中不支持麦克风),请选择连接输入。当你将光标移到直播窗口时,你会自动连接鼠标。
-
要在会话结束时将流式传输会话期间创建的文件导出到 Amazon S3 存储桶,请选择导出文件并指定存储桶的详细信息。导出的文件可以在 “会话” 页面上找到。
-
要以全屏模式观看直播,请选择全屏。按下 E scap e 可撤消此操作。
-
-
要结束直播,请选择终止会话。当直播断开连接时,直播容量将可用于启动另一个直播。
注意
Amazon Stream GameLift s 控制台中的测试直播功能不支持麦克风。
直播会话生命周期
在 Amazon Streams 中处理 GameLift 直播会话时,此图表可以帮助您了解直播会话在其整个生命周期中过渡到的不同状态。
-
StartStreamSession创建新的直播会话,该会话以
ACTIVATING
状态开始。当 Amazon GameLift Streams 找到可用资源来托管直播时,直播会话将转换为ACTIVE
。当客户端连接到活动直播时,直播会话将转换为CONNECTED
。 -
当客户端断开与直播的连接时,直播会话将转换为
PENDING_CLIENT_RECONNECTION
状态。 CreateStreamSessionConnection将直播会话转换为RECONNECTING
,并将启动客户端以重新连接到直播或创建新的直播会话。当直播会话准备好让客户端重新连接时,它会过渡到。ACTIVE
当客户端重新连接时,它会转换回到。CONNECTED
如果客户端断开连接的时间超过ConnectionTimeoutSeconds
,则直播会话将结束。 -
当客户端在指定的时间段内未连接到处于
ACTIVE
或PENDING_CLIENT_RECONNECTION
状态的直播会话时ConnectionTimeoutSeconds
,它将转换为TERMINATED
。 -
TerminateStreamSession启动直播终止,直播会话转换到
TERMINATING
状态。当直播会话成功终止时,它会转换为。TERMINATED
-
处于任何状态(除外
TERMINATED
)的直播会话都可以转换为ERROR
。当 API 调用ERROR
以状态值返回时,请检查的值 StatusReason 以获取错误原因的简短描述。您也可以致电GetStreamSession查看这些值。

影响直播会话的超时值
直播会话受多个超时值控制,这些超时值控制会话生命周期的不同方面。按照你通常在直播会话生命周期中遇到它们的时间顺序大致排列,它们包括以下内容:
- 放置超时
-
Amazon GameLift Streams 查找计算资源以使用可用容量托管直播会话的时间限制。放置超时因用于满足直播请求的容量类型而异:
-
永远在线的容量:75 秒
-
按需容量:
-
Linux/Proton 运行时间:90 秒
-
Windows 运行时间:10 分钟
-
-
行为:如果 Amazon GameLift Streams 无法在这段时间内识别出可用资源,则直播会话将
Status
变为,ERROR
且为StatusReason
placementTimeout
。
-
- 连接超时
-
Amazon GameLift Streams 等待客户端连接或重新连接到直播会话的时间长度。
-
参数:
ConnectionTimeoutSeconds
在 StartStreamSession -
射程:1-3600 秒(1 小时)
-
默认值:120 秒(2 分钟)
-
行为:当直播会话达到
ACTIVE
或PENDING_CLIENT_RECONNECTION
状态时,计时器启动。如果在超时之前没有客户端连接,则会话将Status
转换为TERMINATED
。
-
- 空闲超时
-
在没有用户输入的情况下,直播会话可以处于空闲状态的时间长度。
-
参数:(内部)
-
价值:60 分钟
-
行为:如果在此期间没有收到任何用户输入,Amazon GameLift Streams 将终止直播会话。
-
- 会话时长超时
-
Amazon GameLift Streams 保持直播会话打开的最长持续时间。
-
参数:
SessionLengthSeconds
在 StartStreamSession -
射程:1-86400 秒(24 小时)
-
默认值:43200 秒(12 小时)
-
行为:达到时限后,无论是否存在任何现有客户端连接,都将终止直播会话。
-
终止直播会话
如果您需要强制终止直播会话,则有以下选择:
-
使用 TerminateStreamSession API:要使用 TerminateStreamSession,您需要直播组 ID 和直播会话 ID。您可以使用ListStreamSessions或ListStreamSessionsByAccount与
--status CONNECTED
参数一起获取已连接客户端的直播会话列表。 -
将@@ 会话的位置从其直播组中移除:从直播组中移除直播会话的位置将终止该位置的所有活动直播会话。您可以通过控制台或使用 RemoveStreamGroupLocationsAPI 删除直播群组中的某个位置。
-
删除会话的直播组:删除直播组将终止该直播组所有位置的所有活动直播会话。您可以从控制台或使用 DeleteStreamGroupAPI 删除直播组。请谨慎使用,因为您将突然终止客户端连接。
正在重新连接到直播会话
如果客户端在没有结束会话的情况下与流媒体会话断开连接,则它可以在直播会话启动ConnectionTimeoutSeconds
时指定的时间内重新连接到该会话。要重新连接到会话,您需要直播会话的 ID。有关详情,请参阅 Amazon GameLift Streams API 参考CreateStreamSessionConnection中的。你可以在 React St arter 示例中看到重新连接直播会话的示例