语法
成员
totalMeasurementTimeoutInMilliseconds uint32_t
允许用于解析主机名以及尝试测量本地设备与 PlayFab Quality of Service 信标服务器之间网络状况的最大毫秒数。
此值用于控制 Party 库对所有可用区域的 PlayFab Quality of Service 信标服务器主机名进行解析并向其发送轻量级消息以测量连接质量所允许的最大时间(以毫秒为单位)。如果由于环境问题导致名称解析缓慢或某些区域的延迟/丢包率过高,则只有在此超时时间内至少成功联系过一次的区域才会被报告在 PartyRegionsChangedStateChange 结果中。此值不包括也不影响 Party 库从 PlayFab 服务检索可用区域列表所需的时间。
应用程序通常应根据用户体验目标/最坏情况来定义此超时,而不是尝试基于技术假设推导出某个数值。测量任何给定区域或所有区域所需的确切时间可能因诸多因素而有很大差异,例如可用区域的数量、当前网络环境状况、Party 库基于观察到的延迟动态调整的超时时间等等。
对于经历完全或部分失败的设备而言,此值实际上是一个最坏情况的超时值。这有助于与典型成功情况下的真实观察结果进行对比。使用默认的 PartyRegionQualityMeasurementConfiguration 值、区域可用性和玩家使用模式,Party 库目前观察到全球大多数设备在 2.3 秒或更短时间内成功完成整个测量过程,97% 的设备在少于 6 秒内成功完成。随着更多区域的引入,预计此持续时间会略有增加。
当未配置 PartyOption::RegionQualityMeasurementConfiguration 时,默认值为 15000(15 秒)。
值为零表示没有超时,因此允许所有测量完成,无论任何区域需要多长时间才能成功或失败。否则,最小值为 50 毫秒。
highLatencyHintInMilliseconds uint16_t
一个提示值,指示最高延迟阈值(以毫秒为单位),超过此值时应用程序认为某个区域延迟过高,不值得花费额外时间进行详细测量。
此目标值代表区域延迟的软上限。它不会直接阻止将测量到较高延迟的区域纳入范围,但会导致 Party 库选择针对延迟低于此数值的区域进行优化的超时和重试值。在接收到最少响应数(在 minRequiredSuccessfulResponses 字段中配置)之后,还会对每个区域检查此值。如果某区域测得的中位延迟大于此目标值,则不使用理想响应数(在 idealNumberOfSuccessfulResponses 字段中配置),也不会再发送更多测量尝试。此值不能为零。
当未配置 PartyOption::RegionQualityMeasurementConfiguration 时,默认值为 200。
minRequiredSuccessfulResponses uint16_t
每个区域进行基本评估所需的最少成功测量消息响应数。
在质量测量轻量级消息交换过程中,每个待测量的潜在区域预期至少要成功响应此数量的次数,然后结果才被认为足够准确以针对 highLatencyHintInMilliseconds 字段的目标延迟进行评估。设置较大的最低要求会产生更多的测量样本,因此在面对任何异常包波动时具有更高的一致性和准确性,代价是需要更多时间才能完成。即使没有足够的成功响应,如果发生以下任一情况,某个区域的测量也被视为完成:根本没有成功响应到达并且尝试次数超过 maxRetriesWithNoResponse 字段中配置的值,至少有一个响应到达并且尝试次数超过 maxTimeoutsAfterResponse 字段中配置的值,或者所有区域在 totalMeasurementTimeoutInMilliseconds 字段中配置的总体超时已过。
此值不能为零。
当未配置 PartyOption::RegionQualityMeasurementConfiguration 时,默认值为 3。
idealNumberOfSuccessfulResponses uint16_t
为了对每个区域进行彻底评估而期望获得的成功测量消息响应数。
此值代表为对目标区域实现所需的延迟测量准确度而希望获得的成功响应总数。此值必须等于或高于 minRequiredSuccessfulResponses 字段中的最小值。仅当某区域已经测得中位延迟小于或等于 highLatencyHintInMilliseconds 字段中配置的阈值时,Party 库才会尝试获取该区域最小值与此理想值之间的额外响应数量差。该字段的理想响应数允许对本地设备可能更有价值的区域继续优化测量准确度,而不必对延迟较高的区域也花费额外时间。如果未获得某区域所需的最少响应数,则不会尝试此额外的理想目标。否则,如果达到该区域的 maxTimeoutsAfterResponse 限制或所有区域的总体 totalMeasurementTimeoutInMilliseconds 字段超时已过,即使未收到此理想数量的成功响应,该区域的测量也被视为完成。
当未配置 PartyOption::RegionQualityMeasurementConfiguration 时,默认值为 4。
maxRetriesWithNoResponse uint16_t
在认为某区域不可达之前,可在没有任何响应的情况下向该区域重新发送初始测量消息的最大次数。
此值配置的是在认为某区域不可用之前,Party 库在向该区域重试第一条质量测量轻量级消息时,除首次之外所允许的额外尝试总数。如果从该区域的 Quality of Service 信标服务器收到至少一个成功响应,则不再使用此最大值,而是由 maxTimeoutsAfterResponse 字段控制允许超时的尝试次数。较大的最大重试值对丢包等临时环境问题更具容忍度,代价是放弃不可达区域需要更长时间。测量所有区域所允许的绝对最长时间由单独的 totalMeasurementTimeoutInMilliseconds 字段值限定。
当未配置 PartyOption::RegionQualityMeasurementConfiguration 时,默认值为 3。
maxTimeoutsAfterResponse uint16_t
在认为网络路径过于不可靠而不再继续测量之前,对于已经响应过的区域允许的测量消息尝试超时的最大次数。
如果已经从某区域的 Quality of Service 信标服务器收到至少一个成功响应,此值决定了 Party 库在尝试获取该区域的 minRequiredSuccessfulResponses 和 idealNumberOfSuccessfulResponses 测量结果时允许的超时尝试总数。较大的最大超时值对丢包等临时环境问题更具容忍度,代价是完成对具有较差质量特征的区域的测量可能需要更长时间。测量所有区域所允许的绝对最长时间由单独的 totalMeasurementTimeoutInMilliseconds 字段值限定。
当未配置 PartyOption::RegionQualityMeasurementConfiguration 时,默认值为 3。
备注
此结构可与 PartyOption::RegionQualityMeasurementConfiguration 一起使用,通过 PartyManager::SetOption() 或 PartyManager::GetOption() 分别覆盖或查询 Party 库的当前配置。它配置的是与 PartyRegionsChangedStateChange 状态更改相关联的区域质量测量过程的底层行为。要求
头文件: Party.h另请参阅
Party 成员PartyOption::RegionQualityMeasurementConfiguration
PartyRegionsChangedStateChange
PartyManager::SetOption
PartyManager::GetOption
