> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartyRegionQualityMeasurementConfiguration

> Party 程式庫用來控制區域品質測量行為的設定。

Party 程式庫用來控制區域品質測量行為的設定。

## 語法

```cpp theme={null}
struct PartyRegionQualityMeasurementConfiguration {  
    uint32_t totalMeasurementTimeoutInMilliseconds;  
    uint16_t highLatencyHintInMilliseconds;  
    uint16_t minRequiredSuccessfulResponses;  
    uint16_t idealNumberOfSuccessfulResponses;  
    uint16_t maxRetriesWithNoResponse;  
    uint16_t maxTimeoutsAfterResponse;  
}  
```

### 成員

**`totalMeasurementTimeoutInMilliseconds`**   uint32\_t

允許用於解析主機名稱，以及嘗試測量本機裝置與 PlayFab 服務品質信標伺服器之間網路狀況的最長毫秒數。

此值控制 Party 程式庫為所有可用區域解析 PlayFab 服務品質信標伺服器主機名稱，以及傳送輕量型訊息來測量與這些伺服器之連線品質所允許的最長時間 (以毫秒為單位)。如果環境問題導致名稱解析緩慢，或某些區域出現高延遲/封包遺失，則 [PartyRegionsChangedStateChange](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) 結果中只會回報在此逾時內至少成功連絡過一次的區域。<br /><br /> 此值不包括也不影響 Party 程式庫從 PlayFab 服務擷取可用區域清單所需的時間。<br /><br /> 應用程式通常應根據使用者體驗目標/最壞情況來定義此逾時，而不是嘗試根據技術假設推導出某個數字。測量任何指定區域或所有區域所需的確切時間可能差異很大，取決於可用區域的數目、目前網路環境狀況、Party 程式庫根據觀察到的延遲動態調整的逾時等因素。<br /><br /> 此值實際上是針對遇到完全或部分失敗之裝置的最壞情況逾時。將其與實際觀察到的典型成功情況相比較可能會有幫助。使用預設的 PartyRegionQualityMeasurementConfiguration 值、區域可用性和玩家使用模式，Party 程式庫目前觀察到全球大多數裝置會在 2.3 秒內成功完成整個測量程序，而 97% 的裝置會在 6 秒內成功完成。隨著引進更多區域，預計此持續時間會隨時間略微增加。<br /><br /> 尚未設定 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 時，預設值為 15000 (15 秒)。<br /><br /> 值為零表示沒有逾時，因此不論任何區域需要多久才能成功或失敗，都允許所有測量完成。否則，最小值為 50 毫秒。

**`highLatencyHintInMilliseconds`**   uint16\_t

提示，表示最高延遲閾值 (以毫秒為單位)，超過此閾值時，應用程式會認為區域的延遲過高，不值得花費額外時間執行詳細測量。

此目標值代表區域延遲的軟性上限。它不會直接阻止納入測量延遲較高的區域，但會讓 Party 程式庫選擇針對延遲低於此數字之區域最佳化的逾時和重試值。在收到最少回應數目 (在 *minRequiredSuccessfulResponses* 欄位中設定) 之後，也會針對每個區域檢查此值。如果區域的測量延遲中位數大於此目標，則不會使用理想回應數目 (在 *idealNumberOfSuccessfulResponses* 欄位中設定)，也不會再傳送任何測量嘗試。<br /><br /> 此值不可為零。<br /><br /> 尚未設定 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 時，預設值為 200。

**`minRequiredSuccessfulResponses`**   uint16\_t

每個區域進行基本評估所需的成功測量訊息回應數目下限。

在品質測量輕量型訊息交換期間，每個要測量的潛在區域預期至少要成功回應這麼多次，結果才會被視為足夠準確，可根據 *highLatencyHintInMilliseconds* 欄位的目標延遲進行評估。設定較大的最低需求會產生更多的測量樣本，因此在面對任何離群封包波動時能有更高的一致性和準確度，但代價是需要更多時間才能完成。<br /><br /> 即使沒有足夠的成功回應，只要發生下列任一情況，特定區域的測量就會被視為完成：完全沒有收到任何成功回應，且嘗試次數超過 *maxRetriesWithNoResponse* 欄位中設定的值；至少收到一個回應，且嘗試次數超過 *maxTimeoutsAfterResponse* 欄位中設定的值；或 *totalMeasurementTimeoutInMilliseconds* 欄位中為所有區域設定的整體逾時已過。<br /><br /> 此值不可為零。<br /><br /> 尚未設定 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 時，預設值為 3。<br />

**`idealNumberOfSuccessfulResponses`**   uint16\_t

每個區域為達成全面評估所需的成功測量訊息回應數目。

此值代表為了讓感興趣區域的延遲測量達到所需準確度，偏好的成功回應總數。此值必須等於或大於 *minRequiredSuccessfulResponses* 欄位中的最小值。只有在區域的測量延遲中位數已小於或等於 *highLatencyHintInMilliseconds* 欄位中設定的閾值時，Party 程式庫才會嘗試取得最小值與此理想值之間差額的額外回應數。此欄位的理想回應數目可讓您持續精進可能對本機裝置更有價值之區域的測量準確度，而不必在延遲較高的區域上花費額外時間。<br /><br /> 如果未取得區域的最少回應數目，則不會嘗試此額外的理想目標。否則，如果達到區域的 *maxTimeoutsAfterResponse* 限制，或所有區域的整體 *totalMeasurementTimeoutInMilliseconds* 欄位逾時已過，則即使未收到此理想數目的成功回應，該區域的測量也會被視為完成。<br /><br /> 尚未設定 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 時，預設值為 4。

**`maxRetriesWithNoResponse`**   uint16\_t

在將區域視為無法連線之前，於未收到任何回應的情況下，重新傳送初始測量訊息至區域的額外次數上限。

此值設定 Party 程式庫在將區域視為無法使用之前，重試傳送第一個品質測量輕量型訊息至該區域時，除了第一次之外所進行的額外嘗試總數。如果從區域的服務品質信標伺服器收到至少一個成功回應，則不再使用此上限，而是改由 *maxTimeoutsAfterResponse* 欄位控制允許逾時的嘗試次數。<br /><br /> 較大的重試上限值對封包遺失等暫時性環境問題的容忍度較高，但代價是需要更長時間才會放棄無法連線的區域。測量所有區域所允許的絕對最長時間受個別的 *totalMeasurementTimeoutInMilliseconds* 欄位值限制。<br /><br /> 尚未設定 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 時，預設值為 3。

**`maxTimeoutsAfterResponse`**   uint16\_t

對於先前已回應的區域，在將網路路徑視為太不可靠而無法繼續測量之前，允許逾時的測量訊息嘗試次數上限。

如果已從區域的服務品質信標伺服器收到至少一個成功回應，此值會決定 Party 程式庫在嘗試為該區域取得 *minRequiredSuccessfulResponses* 和 *idealNumberOfSuccessfulResponses* 測量結果時，所允許的逾時嘗試總數。<br /><br /> 較大的逾時上限值對封包遺失等暫時性環境問題的容忍度較高，但代價是可能需要更長時間才能完成對具有這些不良品質特性之區域的測量。測量所有區域所允許的絕對最長時間受個別的 *totalMeasurementTimeoutInMilliseconds* 欄位值限制。<br /><br /> 尚未設定 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 時，預設值為 3。

## 備註

此結構可與 [PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption) 搭配使用，分別透過 [PartyManager::SetOption()](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption) 或 [PartyManager::GetOption()](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getoption) 覆寫或查詢 Party 程式庫目前的設定。它會設定與 [PartyRegionsChangedStateChange](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) 狀態變更相關聯之區域品質測量程序的低階行為。

## 需求

**標頭：** Party.h

## 另請參閱

[Party 成員](/zh-TW/services/playfab/multiplayer/networking/reference/party_members)\
[PartyOption::RegionQualityMeasurementConfiguration](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption)\
[PartyRegionsChangedStateChange](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange)\
[PartyManager::SetOption](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption)\
[PartyManager::GetOption](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getoption)


## Related topics

- [PartyOption](/zh-TW/services/playfab/multiplayer/networking/reference/enums/partyoption.md)
- [PartyRegionsChangedStateChange](/zh-TW/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange.md)
- [Party C/C++ API 概觀](/zh-TW/services/playfab/multiplayer/networking/reference/party_members.md)
- [PlayFab Party 版本資訊](/zh-TW/services/playfab/multiplayer/networking/release-notes.md)
- [PartyManager::GetRegions](/zh-TW/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getregions.md)
