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

版本 1.3,2025/03/01

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

详细信息

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

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

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

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

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

处理与 Xbox 服务有关的问题

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

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

需要 Xbox 连接

在针对 Xbox 主机进行开发时,需要连接到 Internet(尤其是 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. 在游戏中执行以下作时,请从设备拔下网线,或者关闭 WAP 或无线路由器的电源:
    • 创建一个新的保存点。
    • 加载一个保存点。
    • 到达一个自动保存点。
    • 枚举保存的游戏的列表。
    • 搜索并加入一个在线会话。
    • 尝试创建一个在线会话。
    • 查看一个排行榜(如果适用)。
    • 离线玩游戏。

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

通过示例

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

失败示例

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

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

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

测试步骤

  1. 登录到某一 Xbox 档案并且启动该游戏。

  2. 在处于主菜单或前端菜单上时:

    • 在主机上,通过运行来暂停游戏 xbapp suspend [PFN]
    • 在电脑上,通过最小化窗口或按设备上的 Windows 按钮来暂停游戏。
  3. 等待 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。

  4. 恢复该游戏。

  5. 如果支持,请从以下其他区域重复步骤 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. 在处于主菜单或前端菜单上时:
    • 在主机上,通过运行来暂停游戏 xbapp suspend [PFN]
    • 在电脑上,通过最小化窗口或按设备上的 Windows 按钮来暂停游戏。
  4. 等待 30 秒以便游戏完全挂起以及挂起以便中断任何 HTTP 请求。
  5. 重新连接上行电缆,然后等待主机重新连接到 Xbox。
  6. 恢复该游戏。
  7. 如果支持,请从以下其他区域重复步骤 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. 使用最低配置文件限制与 Xbox 设备的最低作要求的连接。
  2. 执行游戏相关的在线操作,包括但不限于:
  • 导航所有菜单。
  • 玩游戏在线游戏会话。

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

通过示例

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

失败示例

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

074-06 变化的低带宽

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

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

测试步骤

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

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

通过示例

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

失败示例

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

074-07 动态连接丢失

所需工具:

配置 Fiddler 经典以使用内容阻止加载项阻止合作伙伴服务

  • 在控制台上, 设置 Fiddler 以调试 Web 服务调用
  • 在电脑上, 设置 Fiddler 以调试 Web 服务调用
  • 安装 Fiddler 的内容阻止 加载项
  • 在 Fiddler 中,选择菜单 ContentBlock 和“Enabled”

提示

配置阻止列表的步骤:

  1. 运行 Fiddler 后,启动游戏并导航所有菜单,完成多人游戏会话,加载到每个游戏模式,并导航游戏的所有区域,包括但不限于:
    • 菜单
    • 排行榜
    • 服务器 (创建一个并加入其他人的)
    • 好友列表
    • 游戏内存储
    • 限时事件

这可确保游戏在正常玩游戏期间连接到所有主机。

  1. 在 Fiddler 中,确定哪些主机是非Microsoft服务:

    • 按主机对会话列表进行排序,并查找不包含以下任何内容的主机:
      • microsoft, msft, xboxlive, xboxservices, live, PlayFabApi, msn, bing
  2. 在 Fiddler 中,将非Microsoft主机添加到阻止列表:

    • 右键单击“非Microsoft主机”,然后选择“阻止此主机”
    • 对所有其他非Microsoft主机重复此作

不必多次阻止同一主机。

若要编辑阻止列表,请选择 ContentBlock 菜单和“编辑阻止的主机...”。

现在,所有非Microsoft主机都已添加到阻止列表,请继续运行测试用例。

测试步骤

  1. 登录到某一 Xbox 档案并且启动游戏。
  2. 完成多人游戏会话,加载到每个游戏模式并导航游戏的所有区域,包括但不限于:
    • 菜单
    • 排行榜
    • 服务器 (创建一个并加入其他人的)
    • 好友列表
    • 游戏内存储
    • 限时事件
  3. 验证游戏是否未显示指示 Xbox 网络问题的错误消息。

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

通过示例

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

失败示例

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

074-08 预先启动停机

所需工具:

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

测试步骤

  1. 在主机上,使用 命令为非Microsoft流量创建具有 xbstress.exe 的断开网络通道:

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. 游戏崩溃、变得不稳定,或导致主机重新启动。