迁移仲裁程序
在 2015 多人游戏会话期间,您可能需要使用仲裁程序迁移来选择新的仲裁程序。 以下流程图说明如何迁移仲裁程序。
有两种类型的迁移。
- 正常的仲裁程序迁移
- 故障转移仲裁程序迁移
正常的仲裁程序迁移
在正常的仲裁程序迁移中,传出仲裁程序可协助迁移任务并确定新仲裁程序。 此类迁移使用“多人游戏任务”主题的设置 MPSD 会话的仲裁程序部分中所介绍的仲裁程序设置。
故障转移仲裁程序迁移
在故障转移仲裁程序迁移中,与之前仲裁程序的连接丢失,其余对等方必须确定会话的新仲裁程序。 故障转移仲裁程序迁移还设置主机设备令牌,并处理 HTTP/412 状态代码,正如正常仲裁程序迁移一样。 但是,在故障转移仲裁程序迁移期间,有多种选择新仲裁程序的方法。
使用候选主机列表选择仲裁程序
您可配置多人会话目录 (MPSD) 以根据在特定操作期间测量的匹配服务质量 (QoS) 指标提供有序的候选主机列表。 客户端可使用此列表来确定新仲裁程序。
要在仲裁程序迁移期间利用此列表,各对等方可执行以下步骤。
- 确定上一个仲裁程序的列表位置。
- 评估列表中的下一个主机。
- 如果主机是本地主机,将其用作新仲裁程序。
- 如果主机不再出现在多人游戏会话中,或已与其对等方断开连接,请按照先前步骤评估列表中的下一个候选主机。
- 如果已到达列表末尾但未选择新仲裁程序,请使用贪婪方法选择仲裁程序,这可能会断开连接。 有关详细信息,请参阅本主题后面的使用贪婪仲裁程序选择来选择仲裁程序。
注意
不建议在通过显式游戏内 QoS 探测匹配后在游戏内创建候选主机列表。 如果绝对有必要使用此机制,让客户端使用主机设备令牌而不是用户信息(例如,Xbox 用户 ID)来确定候选仲裁程序。
使用对等方投票选择仲裁程序
如果在所有对等方之间存在完整连接,可使用对等方消息投票,然后选择新的仲裁程序。 然后,新仲裁程序使用同步更新来更新会话的主机设备令牌。
有关详细信息,请参阅“多人游戏任务”主题中的更新 MPSD 会话部分。
使用贪婪仲裁程序选择来选择仲裁程序
有时没有可用的候选主机列表或不需要连接 QoS;例如,对于纯仲裁程序责任。 在这种情况下,对等方应在检测到原始仲裁程序离开游戏会话后立即设置新仲裁程序,如 XblMultiplayerSessionChangedHandler 事件所报告。 所有其他对等方在尝试设置主机设备令牌时都将看到 HTTP/412 状态代码,假设此时没有对会话进行其他更改。
只有一个对等方会在选择新仲裁程序时成功。