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 提供多种优势,例如:
- 改善了游戏性能并降低了启动延迟,因为无需进行多次调用即可加载清单项。
- 降低了复杂性和代码维护,因为无需处理分页和循环逻辑。