Economy V2 TurboLoading

使用 TurboLoading,可以通过对 GetInventoryItems API 的单个请求加载整个清单。 这可改善启动延迟和性能,因为无需进行多次调用即可从清单集合加载所有项。 出于计费目的,每 250 项被视为单页,因此成本不应更改。

TurboLoading 的工作原理是什么?

TurboLoading 目前适用于使用 Economy V2 REST API 的所有游戏。 PlayFab Services C# 和 Unity SDK 进一步支持压缩,包括以透明方式处理解压缩。 若要激活 TurboLoading,需要执行以下步骤:

  • 将 API 的 Count参数GetInventoryItems设置为超过 250 个项目。 可以将其设置为清单集合的最大大小,即 10,000 个项目。
  • 在请求中包括 Accept-Encoding: gzip 标头。
  • 请先使用 gzip 解压缩响应,然后才能使用清单数据。

例如,如果要加载 700 个项目的整个清单,则可以对GetInventoryItems计数为 700 和 Accept-Encoding: gzip 标头的 API 进行单个调用。 你将获得包含所有清单项的压缩响应。 需要使用 gzip 解压缩响应,然后才能使用数据。

将 TurboLoading 与 PlayFab Services C# 和 Unity SDK 配合使用

可以使用 PlayFab Services C# 和 Unity SDK 设置所有 API 响应的压缩(和自动解压缩),如下所示:

PlayFabSettings.staticSettings.CompressResponses = true;

或者,只能为经济 API 实例设置压缩,如下所示:

var economyApi = new PlayFabEconomyInstanceAPI(new PlayFabApiSettings { CompressResponses = true }, authContext);

将 TurboLoading 与 PlayFabCSDK 配合使用

可以使用跨平台 PlayFabCSDK 和 PFHttpSettings 为所有 API 响应启用压缩,如下所示:

// Initialize PFHttpSettings struct
PFHttpSettings* httpSettings = new PFHttpSettings;

// Enable Repsonse Compression (and automatic decompression)
httpSettings->requestResponseCompression = true;

// Set PFHttpSettings
HRESULT hr = PFSetHttpSettings(httpSettings); // Add your own error handling FAILED(hr) == true

此外,可以对所有 API 响应禁用压缩:

// Disable Response Compression
httpSettings->requestResponseCompression = false;

// Update PFHttpSettings
hr = PFSetHttpSettings(httpSettings); // Add your own error handling

计费

TurboLoading 按返回页计费,即返回项目总数除以 250(四舍五入)。 与每页加载 250 个项目相同。 例如,如果使用 TurboLoading 加载 700 个项目,则会对 3 个请求(700 / 250 = 2.8,四舍五入为 3)计费。

好处

TurboLoading 提供多种优势,例如:

  • 改善了游戏性能并降低了启动延迟,因为无需进行多次调用即可加载清单项。
  • 降低了复杂性和代码维护,因为无需处理分页和循环逻辑。

另请参阅