Skip to main content
本主题介绍如何将 MPA 与 PlayFab Lobby 和 Match 服务集成。这包括适用于其他类似大厅和匹配服务的最佳实践和一般指南。

设计概述

若要将 MPA 与 PlayFab Lobby 和 Match 或类似服务集成,游戏或游戏服务必须从大厅状态查询相关信息,然后将此信息迁移到 MPA 服务中。MPA 服务不适用于大厅或会话状态信息。

活动

对于 MPA 活动,源信息应该是底层的大厅信息。游戏或服务需要按照以下最佳实践在 MPA 活动内容字段中设置相关信息:
  • 更新频率 从大厅数据迁移状态应以合理的频率进行,以反映变化(例如 CurrentPlayers 信息的更新)。更新调用不应超过细粒度速率限制中所述的调用限制。也不应通过删除/重新创建 MPA 活动来更新信息。
  • XBOX 用户身份 (XUID) 玩家的 XUID 在 XBOX 服务之外的服务中通常是未经验证的信息,也不是跨网络服务的主要标识符。PlayFab Lobby 使用跨网络的 PlayFab 用户实体 ID 来标识玩家,可以通过 API 或服务调用将其转换为活动用户的 XUID。有关更多详细信息,请参阅 PlayFab 教程:获取玩家配置文件。只有此已解析的 XUID 才应被视为安全。 其他玩家的 XUID 无法通过这种方式检索。作为解决方案,可以将 XUID 作为大厅中玩家的自定义字符串属性提供。这些字符串不应被视为安全,并且应始终通过 PlayFab 服务使用 PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResult 来验证,以比较 XUID 对应的预期和实际 PlayFab 用户实体 ID。不匹配则表示 XUID 不正确。 对于所有服务,作为不安全字符串提供的 XUID 都不安全,如果不加以验证,可能会导致假冒攻击。
  • 连接字符串 若要与 PlayFab Lobby 服务集成,MPA 活动的连接字符串应设置为可通过 PFLobbyGetConnectionString 检索的 Lobby 连接字符串。其他服务应使用等效的加入字符串。
  • 反映大厅可加入性 活动旨在允许玩家加入游戏体验,需要与底层大厅状态的可加入性相匹配。当活动已满时(CurrentPlayers 达到 MaxPlayers 值),活动会自动变为不可加入。希望使活动暂时不可加入的游戏也可以使用此行为。只有在将来不可能有加入时,才应删除活动。请注意,改变活动的隐私设置只会限制,但不能阻止所有加入。 由于活动加入的延迟,游戏应始终考虑对已满或不可加入会话执行加入的流程,并向玩家提供适当的错误。
  • 反映隐私更改 通过加入限制反映的活动隐私状态和变化应与为底层 PlayFab Lobby 定义的访问策略保持一致。这同样适用于类似的服务,可能需要映射隐私值。

邀请

对于 MPA 邀请,推荐的源信息也应该是底层的大厅信息。这种最佳实践方法比像 PlayFab Party 这样的网状网络邀请更可靠,并且可以通过大厅数据立即提供状态信息。 若要与 PlayFab Lobby 服务集成,MPA 邀请的连接字符串应设置为 Lobby 连接字符串。此字符串可通过 PFLobbyGetConnectionString 检索。此外,应为邀请设置适当的跨平台加入值。

最近玩家

MPA 最近玩家功能的使用与底层大厅关系不密切,可以由游戏逻辑驱动。最近玩家调用不应超过细粒度速率限制中所述的调用限制。作为最佳实践,最近玩家活动应在合理的时间范围内进行批处理,以遵守调用限制。游戏对最近玩家的报告不应是即时的,首选批量提交。

匹配

PlayFab Match 或类似匹配服务的集成不需要任何直接的 MPA 功能。如果匹配期间不可加入,游戏可能希望更新 MPA 活动的可加入性。作为最佳实践,PlayFab Match 应与 PlayFab Lobby 结合使用。 与大厅用户身份一样,PlayFab Match 使用跨网络的 PlayFab 用户实体 ID 来标识玩家,可通过 API 或服务调用将其转换为活动用户的 XUID。其他玩家的 XUID 无法通过这种方式检索。作为类似于大厅的解决方案,可以将 XUID 作为大厅中玩家的自定义字符串属性提供。这些字符串不应被视为安全,并且应始终按照上面 PlayFab Lobby 中描述的方式,通过 PlayFab 服务比较 XUID 的预期和实际 PlayFab 用户实体 ID 来验证。不匹配则表示 XUID 不正确。 对于匹配,作为不安全字符串提供的 XUID 不安全,如果不加以验证,可能会导致假冒攻击。

一般最佳实践

MPA 服务被设计为在大厅或匹配服务(例如 PlayFab Lobby 和 Match)之上,一个用于 XBOX 功能的轻量级集成点。此集成可以是轻量级的,只需在特定的连接点执行,以将所需信息和相关更新反映到活动、邀请和最近玩家功能中。 此外,MPA 服务的集成还应考虑服务到服务的端点。根据游戏、多人游戏和服务器架构,直接的服务到服务调用可能比客户端调用简单得多且更可靠。这通常适用于 MMO 游戏。 与作为 PlayFab Lobby 和 Match 一部分存储在自定义字符串中的 XUID 信息一样,任何其他自定义身份信息也应始终被视为不安全,在使用前应加以验证。缺乏验证可能会导致假冒攻击,尤其是在游戏包含具有更多用户访问和保护的平台时。
最后修改于 2026年8月25日