XR-074:与 Xbox 和合作伙伴服务断开连接 *

版本 1.2,2024/4/01

游戏必须正常处理与 Xbox 和合作伙伴服务连接有关的错误。 游戏在出现故障后重试对 Xbox 服务的请求时,必须遵循 Xbox 设定的重试策略。 在服务不可用时,游戏必须相应管理与用户的信息传递。 如果某一合作伙伴服务不可用,游戏不得指示存在与 Xbox Live 有关的问题。 当网络服务速度减慢或间歇性可用时,游戏不得崩溃或挂起。

详细信息

游戏应该对其自己的网络操作性能做出响应,和/或使用 Windows.Xbox.Networking 网络质量 API 确定当前网络状况。 它们还应该通过传输较少的数据、选择相应的用户规则或者利用云服务,顺利地进行降级。

处理与非 Xbox 服务有关的问题

遇到与合作伙伴服务有关的问题(例如非暂时性超时、网络 API 错误或者缺少影响用户体验的服务配置)的游戏应警告用户特定功能或服务不可用。 游戏应该在用户进行故障排除时顺利故障转移到某一安全状态,或者故障转移到用户可以手动尝试的状态。

用户友好消息的一个示例是:

“抱歉,非 Microsoft 服务当前不可用。 请稍后重试。 有关详细信息,请联系非 Microsoft 支持部门联系信息。”

处理与 Xbox 服务有关的问题

如果丢失与某一 Xbox 服务的连接,则某些功能会变得不可用。 在这种情况下,游戏应使用清楚和用户友好的消息向用户传达此情况。

如果某一服务不可用,则允许游戏重试其请求,但这些游戏只能在 Xbox 允许的参数内这样做。 有关 Xbox 主机游戏的服务复原的详细信息,包括 HTTP 重试和等待逻辑以及针对单独服务的用户交互指南,请参阅游戏的服务中断复原

需要 Xbox 连接

在针对 Xbox 主机进行开发时,要求与互联网(尤其是 Xbox)的连接以实现其主要功能的游戏可能要在其 AppX 清单中包括布尔标志 RequireXboxLive。 这将在 Xbox 不可用时阻止游戏在 Xbox 主机上启动,并且随后在连接丢失时挂起游戏。

有关使用 GDK 进行网络的信息,请阅读 网络部分

认证测试用例

074-01 WAN 与 Xbox 服务断开连接

测试步骤

  1. 登录到 Xbox 档案。
  2. 执行以下操作时,请断开 WAN 网络(如果使用以太网开关/集线器,则断开与网络设备连接的上行电缆。如果设备是通过 WiFi 连接的,则断开与无线接入点连接的上行电缆)的连接:
  • 创建一个新的保存点。
  • 加载一个保存点。
  • 到达一个自动保存点。
  • 枚举保存的游戏的列表。
  • 搜索并加入一个在线会话。
  • 尝试创建一个在线会话。
  • 查看一个排行榜(如果适用)。
  • 离线玩游戏。

预期结果
在主机无法访问 Xbox 服务时,该游戏应该能够使用用户友好的错误消息做出响应。

通过示例

  1. 游戏显示错误消息,指出与 Xbox 服务的网络连接丢失。
  2. 当在不要求 Xbox 服务的本地游戏模式下玩游戏时,游戏不显示一条错误消息。
  3. AppX 清单中带RequireXboxLive 的游戏将暂停,连接丢失时将终止。

失败示例

  1. 用户无法完成非在线 Xbox 游戏会话。
  2. 游戏进入无法响应或不稳定状态。

074-02 直接断开连接

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 在游戏中执行以下操作时,从设备上拔下网络电缆,或者切断 WAP 或无线路由器的电源:
  • 创建一个新的保存点。
  • 加载一个保存点。
  • 到达一个自动保存点。
  • 枚举保存的游戏的列表。
  • 搜索并加入一个在线会话。
  • 尝试创建一个在线会话。
  • 查看一个排行榜(如果适用)。
  • 离线玩游戏。

预期结果
在设备失去与 Xbox 服务的连接时,该游戏应该能够使用用户友好的错误消息做出响应。

通过示例

  1. 当游戏处于在线游戏模式时显示一个用户友好的消息。
  2. 在离线游戏模式期间该游戏不会中断游戏过程。
  3. AppX 清单中带RequireXboxLive 的游戏将暂停,连接丢失时将终止。

失败示例

  1. 在离线游戏模式期间将显示一条错误消息。
  2. 在网络进入离线状态后,用户能够查看在线菜单或者查看缓冲的媒体。

074-03 挂起与 Xbox 服务的断开连接

配置:对于 Xbox 设备,请安装游戏并使用“xbapp list”来返回游戏的程序包全名 (PFN)。

测试步骤

  1. 登录到某一 Xbox 档案并且启动该游戏。
  2. 在处于主菜单或前端菜单上时:
  • 如果在 Xbox 设备上进行测试,则通过运行 xbapp suspend [PFN] 挂起该游戏、或
  • 如果在 Windows 10 电脑上进行测试,则通过将窗口最小化来挂起游戏;或者
  • 如果在 Windows 10 移动版上进行测试,则通过按设备上的 Windows 按钮挂起该游戏。
  1. 等待 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  2. 恢复该游戏。
  3. 如果支持,则从以下其他区域重复步骤 [2] - [4]:
  • 在单人游戏会话期间。
  • 在在线多人游戏会话期间。
  • 在处于游戏前多人游戏大厅时。
  • 在查看在线排行榜时。
  • 在视频或音频播放期间。

预期结果
在被挂起后该主机如果无法访问 Xbox 服务,则该游戏必须成功做出响应、顺利处理问题情况,并且在适当时通过用户友好的错误消息予以响应。

通过示例

  1. 当处于在线 Xbox 多人游戏会话时,该游戏显示一条错误消息,指示丢失了与 Xbox 服务的网络连接。
  2. 该游戏在不要求 Xbox 服务的本地游戏模式下玩游戏时,不显示一条错误消息。

失败示例

  1. 用户无法完成非在线 Xbox 游戏会话。
  2. 该游戏进入无法响应或不稳定状态。
  3. 游戏在恢复后显示误导或不正确的错误消息。

074-04 挂起期间 Xbox 服务重新连接

配置:对于 Xbox 设备,请安装游戏并使用“xbapp list”来返回游戏的程序包全名 (PFN)。

测试步骤

  1. 登录到某一 Xbox 档案并确保主机设置为常用主机。
  2. 在没有连接到 Xbox 但保留本地网络连接(如果使用以太网开关/集线器,则断开与网络设备连接的上行电缆。如果设备是通过 WiFi 连接的,则断开与无线接入点连接的上行电缆)的情况下启动游戏。
  3. 在处于主菜单或前端菜单上时:
  • 如果在 Xbox 设备上进行测试,则通过运行 xbapp suspend [PFN] 挂起该游戏、或
  • 如果在 Windows 10 电脑上进行测试,则通过将窗口最小化来挂起游戏;或者
  • 如果在 Windows 10 移动版上进行测试,则通过按设备上的 Windows 按钮挂起该游戏。
  1. 等待至少 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  2. 重新连接上行电缆,然后等待主机重新连接到 Xbox。
  3. 恢复该游戏。
  4. 如果支持,则从以下其他区域重复步骤 [2] - [6]:
  • 在单人游戏会话期间。
  • 在保存/加载游戏前的保存/加载菜单内。

预期结果
在被挂起后该主机如果无法访问 Xbox 服务,则该游戏必须成功做出响应、顺利处理问题情况,并且在适当时通过用户友好的错误消息予以响应。

通过示例

  1. 用户无需中断即可恢复该游戏和完成离线 Xbox 游戏会话。
  2. 该游戏保持稳定,并且不会出现崩溃。

失败示例

  1. 用户无法完成非在线 Xbox 游戏会话。
  2. 该游戏进入无法响应或不稳定状态。
  3. 游戏在恢复后显示误导或不正确的错误消息。

074-05 固定低带宽

所需的工具:来自 GDK/XDK 的 xbstress.exe

配置:网络模拟受到命令行强调工具 xbstress.exe 的控制。 该工具配置不同的主机压力源,包括网络模拟。 出于网络目的,xbstress.exe 在 Xbox 设备上控制一个指定的驱动器,它将删除数据包、注入延迟并且限制吞吐量。 xbstress.exe 具有三个预先配置的模拟配置文件,允许你轻松地模拟重要的网络情况:最低、平均和极佳。 最低配置文件将映射到此 XR。

测试步骤

  1. 使用 XBStress 的最低配置文件,将连接限制到 Xbox One 的最低操作系统要求。
  2. 执行游戏相关的在线操作,包括但不限于:
  • 导航所有菜单。
  • 玩游戏在线游戏会话。

预期结果
当用户的 Internet 连接速度下降到低于 192 Kbps 时,游戏不得崩溃或者导致用户数据丢失。

通过示例

  1. 将显示一条用户友好的消息,指示可能由于低带宽而影响在线玩游戏。
  2. 游戏不会崩溃,并且不会导致用户数据丢失。

失败示例

  1. 游戏崩溃或导致用户数据丢失。

074-06 变化的低带宽

所需的工具:来自 GDK/XDK 的 xbstress.exe

配置:网络模拟受到命令行强调工具 xbstress.exe 的控制。 该工具配置不同的主机压力源,包括网络模拟。 出于网络目的,xbstress.exe 在 Xbox 设备上控制一个指定的驱动器,它将删除数据包、注入延迟并且限制吞吐量。 xbstress.exe 具有三个预先配置的模拟配置文件,允许你轻松地模拟重要的网络情况:最低、平均和极佳。 最低配置文件将映射到此 XR。

测试步骤

  1. 禁用 xbstress 中的所有网络限制。
  2. 执行游戏相关的在线操作,包括但不限于:
  • 导航所有菜单。
  • 玩游戏在线游戏会话。
  1. 在执行步骤 [2] 时,启用 xbstress 的最低配置文件。

预期结果
当用户的 Internet 连接速度下降到低于 192 Kbps 时,游戏不得崩溃或者导致用户数据丢失。

通过示例

  1. 将显示一条用户友好的消息,指示可能由于低带宽而影响在线玩游戏。
  2. 游戏不会崩溃,并且不会导致用户数据丢失。

失败示例

  1. 游戏崩溃或导致用户数据丢失。

074-07 动态连接丢失

所需工具:

  • 来自 GDK/XDK 的 xbstress.exe
  • 对于 Windows 10,为 Fiddler Classic

配置:
对于 Xbox 设备,网络模拟受到命令行压力工具 xbstress.exe 的控制。 xbstress.exe 允许用户阻止一组域名和 IP,使用提供的地址列表执行此测试,以便阻止非 Microsoft 流量。

测试步骤

  1. 登录到 Xbox 档案。
  2. 启动游戏。
  3. 访问非 Microsoft 在线功能。
  4. 如果在 Xbox 设备上进行测试,则使用以下命令通过 xbstress 为非 Microsoft 流量创建中断的网络通道:

xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]

  1. 使用以下命令启动网络模拟:xbstress simulate network=channels
  2. 如果在 Windows 10 上进行测试,则使用 fiddler 模拟停机。

预期结果
游戏应正常处理与 Microsoft 服务断开连接的情况。

通过示例

  1. 在丢失与合作伙伴托管的服务的连接时游戏不会挂起或崩溃。

失败示例

  1. 显示的错误意味着存在与 Microsoft 服务有关的问题。
  2. 显示非描述性错误消息。
  3. 游戏崩溃、变得不稳定,或导致主机重新启动。

074-08 预先启动停机

所需工具:

  • 来自 GDK/XDK 的 xbstress.exe
  • 对于 Windows 10,为 Fiddler Classic

配置:
对于 Xbox One,网络模拟受到命令行压力工具 xbstress.exe 的控制。 xbstress.exe 允许用户阻止一组域名和 IP,使用提供的地址列表执行此测试,以便阻止非 Microsoft 流量。

测试步骤

  1. 如果在 Xbox 设备上进行测试,则使用以下命令通过 xbstress 为非 Microsoft 流量创建中断的网络通道:

xbstress set channel=0 network=broken addresses=[semicolon delimited list of addresses]

  1. 使用以下命令启动网络模拟:xbstress simulate network=channels
  2. 如果在 Windows 10 上进行测试,则使用 fiddler 模拟停机。
  3. 登录到 Xbox 档案。
  4. 启动游戏。
  5. 访问非 Microsoft 在线功能。

预期结果
游戏应提供用户友好的错误消息,指示存在与访问非 Microsoft 服务有关的问题,并且应允许有机会重试连接。

通过示例

  1. 在丢失与合作伙伴托管的服务的连接时游戏不会挂起或崩溃。

失败示例

  1. 显示的错误意味着存在与 Microsoft 服务有关的问题。
  2. 显示非描述性错误消息。
  3. 游戏崩溃、变得不稳定,或导致主机重新启动。