跳轉到主要內容
控制在網路中的裝置之間嘗試使用直接對等連線的旗標。

語法

常數

備註

在將初始使用者成功驗證到網路的過程中,若網路 PartyNetworkConfiguration 結構中宣告的這些旗標允許,裝置可能會嘗試與已參與網路的其他裝置建立直接對等連線。對於成功的嘗試,裝置之間的端點訊息和聊天資料會使用這些直接連線傳輸。對於因裝置之間環境不相容而失敗的嘗試,這些裝置之間的所有通訊都會改為透過透明的雲端轉送伺服器傳輸。如果這些旗標不允許裝置嘗試直接對等連線,則它們永遠不會交換 IP 位址資訊,且一律會透過透明的雲端轉送伺服器傳輸端點訊息和聊天資料。

您可以呼叫 PartyNetwork::GetDeviceConnectionType(),判斷本機裝置是否實際與特定遠端裝置建立了直接對等連線。

成功的直接對等連線可能會在某些裝置之間提供較低的延遲,但嘗試建立直接對等連線也需要使用者向其他人揭露其裝置的 IP 位址,這可能會引發隱私權疑慮,或讓惡意使用者有機會在遊戲之外攻擊對等端的裝置和網際網路連線。基於原則考量,某些平台也可能不允許直接對等連線。請務必針對您的效能和安全性目標使用適當的旗標。

除了特定網路的 PartyNetworkConfiguration::directPeerConnectivityOptions 值之外,裝置還可以使用 PartyManager::SetOption() 設定 PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask,針對其驗證進入的所有網路選擇性地進一步限制這些旗標。所有旗標都會使用位元 AND 運算進行評估。也就是說,只有當特定旗標在三個地方都已啟用時 (網路的 PartyNetworkConfiguration 結構,以及兩個裝置各自的本機遮罩選項),該旗標才會對指定網路中的一對裝置生效。即使 Party 網路允許相關形式的直接對等連線,任一裝置都可以藉由不啟用該旗標,單方面選擇退出彼此之間的 IP 位址揭露和直接連線嘗試。PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask 值預設為允許網路啟用的所有直接對等連線,因此只有在您有裝置專屬需求,要防止涉及該裝置的部分或全部直接對等連線時,才需要設定它。

為了避免耗用過多資源,即使這些旗標允許,Party 程式庫也會在內部防止任何指定裝置在其目前參與的所有網路中,嘗試建立超過設定上限數目的直接對等連線。這不會影響裝置參與具有更多遠端裝置之大型網路或多個網路的能力。與額外裝置之間的通訊只會改為透過透明的雲端轉送伺服器傳輸。若要修改直接對等連線的數目上限,請使用 PartyManager::SetOption() 設定 PartyOption::LocalDeviceMaxDirectPeerConnections。

建議您不要主動強制任何一對裝置都必須有直接對等連線 (也就是說,如果 PartyNetwork::GetDeviceConnectionType() 回報的值不是 PartyDeviceConnectionType::DirectPeerConnection,請勿呼叫 PartyNetwork::LeaveNetwork()),因為使用中的特定基礎傳輸方法並不會改變整體的邏輯通訊能力。如果您的遊戲設計對訊息延遲上限有嚴格的需求而傾向使用直接對等連線,最好根據 PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds 統計資料所回報的目前實際延遲觀察值採取動作,而不是根據傳輸機制做出抽象的假設。否則,您可能會持續妨礙那些因無法控制的環境因素而總是需要使用附近透明雲端轉送伺服器、卻想與同一群好友遊玩的使用者。

需求

標頭: Party.h

另請參閱

Party 成員
PartyNetworkConfiguration
PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask
PartyManager::SetOption
PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds
PartyLocalEndpoint::GetEndpointStatistics
最後修改於 2026年10月20日