PartyNetworkConfiguration
ネットワーク構成データ。
構文
struct PartyNetworkConfiguration {
uint32_t maxUserCount;
uint32_t maxDeviceCount;
uint32_t maxUsersPerDeviceCount;
uint32_t maxDevicesPerUserCount;
uint32_t maxEndpointsPerDeviceCount;
PartyDirectPeerConnectivityOptions directPeerConnectivityOptions;
}
メンバー
maxUserCount
uint32_t
ネットワークで許可される一意のユーザーの最大数。
この値は 0 より大きい必要があります。
クライアントが PartyNetwork::AuthenticateLocalUser() を呼び出すことによってこの制限に違反した場合、操作は非同期に失敗し、PartyAuthenticateLocalUserCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxDeviceCount
uint32_t
ネットワークに接続できるデバイスの最大数。
PlayFab パーティー ネットワークは、2 台から 128 台のデバイス間の任意の場所に対応するようにスケーリングできます。 このサービスでは、シナリオに合わせて最適化されたネットワーク リレー構成が選択されるため、ネットワーク内の予想されるデバイスの最大数に一致するように PartyNetworkConfiguration
で maxDeviceCount
を構成することが重要です。
クライアントが PartyManager::ConnectToNetwork() を呼び出すことによってこの制限に違反した場合、操作は非同期に失敗し、PartyConnectToNetworkCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxUsersPerDeviceCount
uint32_t
デバイスごとに許可されるユーザーの最大数。
この値は、1 以上 c_maxLocalUsersPerDeviceCount
以下にする必要があります。
クライアントが PartyNetwork::AuthenticateLocalUser() を呼び出すことによってこの制限に違反した場合、操作は非同期に失敗し、PartyAuthenticateLocalUserCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxDevicesPerUserCount
uint32_t
ユーザーごとに許可されるデバイスの最大数。
この値は 0 より大きい必要があります。
クライアントが PartyNetwork::AuthenticateLocalUser() を呼び出すことによってこの制限に違反した場合、操作は非同期に失敗し、PartyAuthenticateLocalUserCompletedStateChange::result は PartyStateChangeResult::NetworkLimitReached に設定されます。
maxEndpointsPerDeviceCount
uint32_t
エンドポイントごとに許可されるユーザーの最大数。
この値は、0 以上 c_maxNetworkConfigurationMaxEndpointsPerDeviceCount
以下にする必要があります。
ネットワーク構成が使用可能になった後 PartyNetwork::CreateEndpoint() を呼び出すことによってクライアントがこの制限に違反すると、PartyNetwork::CreateEndpoint() の呼び出しは同期的に失敗します。 ネットワーク構成が利用可能になったときに、クライアントが既に違反する数のエンドポイント作成をキューに登録していた場合、クライアントはネットワークから開始され、PartyNetworkDestroyedStateChange が生成されます。
directPeerConnectivityOptions
PartyDirectPeerConnectivityOptions
ネットワーク内のデバイス間の直接ピア ツー ピア接続試行をサポートするかどうか、およびその方法。
ネットワークへの初期ユーザーの正常な認証の一環として、デバイスは、これらのフラグによって許可されている場合に、ネットワークに既に参加している他のデバイスとの直接ピア ツー ピア接続の確立を試みることができます。 成功した場合、デバイス間のエンドポイント メッセージとチャット データは、これらの直接接続を使用して送信されます。 デバイス間の環境の非互換性のために失敗した場合、それらのデバイス間のすべての通信は、代わりに透過的なクラウド リレー サーバーを介して送信されます。 デバイスがこれらのフラグによってピア接続を直接試行することが許可されていない場合、IP アドレス情報を交換することはなく、常に透過的なクラウド リレー サーバーを介してエンドポイント メッセージとチャット データを送信します。
PartyNetwork::GetDeviceConnectionType() を呼び出すことで、ローカル デバイスが特定のリモート デバイスへの直接ピア ツー ピア接続を実際に確立したかどうかを確認できます。
直接ピア接続が成功すると、一部のデバイス間の待ち時間が短くなる可能性がありますが、確立を試みると、ユーザーはデバイスの IP アドレスを他のデバイスに開示する必要があります。これは、プライバシーの問題や、悪意のあるユーザーがタイトルの外部でピアのデバイスやインターネット接続を攻撃する可能性がある場合に問題になる可能性があります。 また、ポリシー上の理由から、特定のプラットフォームでは許可されない場合があります。 パフォーマンスとセキュリティの目標に適したフラグを必ず使用してください。
ここで設定された特定のネットワークの値に加えて、必要に応じて、PartyManager::SetOption() を使用して、PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask を設定することによって、認証するすべてのネットワークのデバイスによってフラグをさらに制限できます。 すべてのフラグは、ビット単位の AND 演算を使用して評価されます。 つまり、特定のフラグは、ネットワークのこのフィールドと、両方のデバイスのそれぞれのローカル マスク オプションの 3 つの場所で有効になっている場合にのみ、特定のネットワークのデバイスのペアに対して実際に有効になります。 このフィールドが、関連するフォームの直接ピア接続を許可している場合でも、どちらのデバイスも、このローカル デバイス マスクのオプションでフラグを有効にしないことで、IP アドレスの開示とデバイス間の直接接続の試行を一方的にオプトアウトできます。
PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask の既定値は、ネットワークによって有効になっているすべての直接ピア接続を許可するため、デバイス固有の要件がある場合にのみ構成する必要があります。
また、過剰なリソース消費を回避するために、パーティー ライブラリは、特定のデバイスが現在参加しているすべてのネットワークで、これらのフラグによって許可されている場合でも、構成された最大数を超えるピア直接接続を確立しようとするのを内部的に防止します。 これは、追加のリモート デバイスを使用して大規模または複数のネットワークに参加するデバイスの機能には影響しません。 追加のデバイスとの通信は、透過的なクラウド リレー サーバーを介して送信されます。 ピア直接接続の最大数を変更するには、PartyManager::SetOption() を使用して PartyOption::LocalDeviceMaxDirectPeerConnections を設定します。
特定のペアのデバイスに対して直接ピアツーピア接続の可用性を積極的に適用しないことをお勧めします (つまり、PartyNetwork::GetDeviceConnectionType() が PartyDeviceConnectionType::DirectPeerConnection) 以外の値を報告する場合は、PartyNetwork::LeaveNetwork() を呼び出さないでください。これは、使用中の特定の基になる転送メソッドによって通信の全体的な論理機能が変更されないためです。 ゲーム設計に、直接ピア接続を促進する最大メッセージ待ち時間に対する厳格な要件がある場合は、送信メカニズムに基づいて抽象的な想定を行うのではなく、PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds 統計によって報告された、その待機時間の現在の具体的な観察に対してアクションを実行することをお勧めします。 そうしないと、環境要因が制御できないので、常に近くの透明なクラウド リレー サーバーを使用する必要がある同じフレンド のセットでプレイしようとしているユーザーを絶えず妨げる可能性があります。
要件
ヘッダー: Party.h
関連項目
パーティーのメンバー
PartyNetwork::AuthenticateLocalUser
PartyAuthenticateLocalUserCompletedStateChange
PartyManager::ConnectToNetwork
PartyConnectToNetworkCompletedStateChange
PartyNetwork::CreateEndpoint。
PartyNetworkDestroyedStateChange
PartyStateChangeResult
PartyDirectPeerConnectivityOptions