PartyDirectPeerConnectivityOptions
Flags, die die versuchte Verwendung direkter Peer-to-Peer-Konnektivität zwischen Geräten in einem Netzwerk steuern.
Syntax
enum class PartyDirectPeerConnectivityOptions : int32_t
{
None = 0x0,
SamePlatformType = 0x1,
DifferentPlatformType = 0x2,
AnyPlatformType = SamePlatformType | DifferentPlatformType,
SameEntityLoginProvider = 0x4,
DifferentEntityLoginProvider = 0x8,
AnyEntityLoginProvider = SameEntityLoginProvider | DifferentEntityLoginProvider,
OnlyServers = 0x10,
}
Konstanten
Konstante | Beschreibung |
---|---|
Keine | Es werden keine Flags angegeben. Das Fehlen von Flags bedeutet, dass keine direkten Peerkonnektivitätsversuche zulässig sind. Alle Endpunktnachrichten und Chatdaten zwischen Geräten werden immer über transparente Cloudrelayserver übertragen, und es werden keine IP-Adressinformationen ausgetauscht. |
SamePlatformType | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten desselben Plattformtyps versucht werden. Ein Gerätepaar versucht, direkte Peer-to-Peer-Verbindungen herzustellen, wenn diese identifiziert werden, dass sie denselben Hardware- und/oder Betriebssystemplattformtyp (z. B. Windows-PCs, Xbox-Spielkonsolen, iOS-basierte mobile Geräte) aufweisen, die der jeweiligen Von ihnen verwendeten Party-Bibliothek zugeordnet sind. Beachten Sie, dass dieses Flag keine direkten Peer-to-Peer-Konnektivitätsversuche allein zulässt. Es muss mit einem oder beiden flags SameEntityLoginProvider und DifferentEntityLoginProvider kombiniert werden. Dieses Flag kann nicht mit dem OnlyServers Flag in der Struktur PartyNetworkConfiguration kombiniert werden. Es kann mit OnlyServers als Teil des PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask-Werts kombiniert werden. |
DifferentPlatformType | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten mit unterschiedlichen Plattformtypen versucht werden. Ein Gerätepaar versucht, direkte Peer-to-Peer-Verbindungen herzustellen, wenn es als unterschiedliche Arten von Hardware und/oder Betriebssystemplattformen (z. B. Windows-PCs, Xbox-Spielkonsolen, iOS-basierte mobile Geräte) identifiziert wird, die den spezifischen Parteibibliotheken zugeordnet sind, die von jedem Gerät verwendet werden. Beachten Sie, dass dieses Flag keine direkten Peer-to-Peer-Konnektivitätsversuche allein zulässt. Es muss mit einem oder beiden flags SameEntityLoginProvider und DifferentEntityLoginProvider kombiniert werden. Dieses Flag kann nicht mit dem OnlyServers Flag in der Struktur PartyNetworkConfiguration kombiniert werden. Es kann mit OnlyServers als Teil des PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask-Werts kombiniert werden. |
AnyPlatformType | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten unabhängig von deren Plattformtypen versucht werden. Dieses Flag entspricht SamePlatformType | DifferentPlatformType . |
SameEntityLoginProvider | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten versucht werden, die über authentifizierte PlayFab-Entitäts-IDs des Benutzers verfügen, die mit demselben Anbieter angemeldet wurden. Ein Gerät, das zunächst einen lokalen Benutzer im Netzwerk authentifiziert, versucht, direkte Peer-to-Peer-Verbindungen mit Remotegeräten herzustellen, die mindestens eine authentifizierte PlayFab-Entitäts-ID aufweisen, die mit demselben Anbieter (z. B. Xbox Live, Facebook, iOS, Google) als der neu authentifizierende Benutzer angemeldet wurde. Beachten Sie, dass dieses Flag keine direkten Peer-to-Peer-Konnektivitätsversuche allein zulässt. Es muss mit einem oder beiden flags SamePlatformType und DifferentPlatformType kombiniert werden. Dieses Flag kann nicht mit dem OnlyServers Flag in der Struktur PartyNetworkConfiguration kombiniert werden. Es kann mit OnlyServers als Teil des PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask-Werts kombiniert werden. |
DifferentEntityLoginProvider | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten mit authentifizierten PlayFab-Entitäts-IDs des Benutzers versucht werden, die mit verschiedenen Anbietern angemeldet wurden. Ein Gerät, das zunächst einen lokalen Benutzer im Netzwerk authentifiziert, versucht, direkte Peer-to-Peer-Verbindungen mit Remotegeräten herzustellen, die keine authentifizierten PlayFab-Entitäts-IDs des Benutzers aufweisen, die mit demselben Anbieter (z. B. Xbox Live, Facebook, iOS, Google) als neu authentifizierter Benutzer angemeldet wurden. Beachten Sie, dass dieses Flag keine direkten Peer-to-Peer-Konnektivitätsversuche allein zulässt. Es muss mit einem oder beiden flags SamePlatformType und DifferentPlatformType kombiniert werden. Dieses Flag kann nicht mit dem OnlyServers Flag in der Struktur PartyNetworkConfiguration kombiniert werden. Es kann mit OnlyServers als Teil des PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask-Werts kombiniert werden. |
AnyEntityLoginProvider | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten versucht werden, unabhängig vom Anbieter, der für die Anmeldung authentifizierter PlayFab-Entitäts-IDs verwendet wird. Dieses Flag entspricht SameEntityLoginProvider | DifferentEntityLoginProvider . |
OnlyServers | Direkte Peer-to-Peer-Verbindungen können zwischen Geräten versucht werden, wenn mindestens eines der Geräte über einen authentifizierten Benutzer mit dem PlayFab-Entitätstyp verfügt game_server .Ein Gerät, das zunächst einen lokalen Benutzer im Netzwerk authentifiziert, versucht, direkte Peer-to-Peer-Verbindungen mit Remotegeräten herzustellen, wenn entweder der lokale Benutzer oder ein Benutzer auf dem Remotegerät ein game_server PlayFab-Entitätstyp ist, wie in PartyManager::CreateLocalUserWithEntityType() angegeben. Anders ausgedrückt: Die Geräte der Spieler werden niemals direkt miteinander verbunden, nur mit Servergeräten. Servergeräte versuchen, eine direkte Verbindung mit allen Player- und anderen Servergeräten herzustellen. Dieses Flag kann nicht mit den SamePlatformType Flags , , DifferentPlatformType SameEntityLoginProvider oder DifferentEntityLoginProvider in der Struktur PartyNetworkConfiguration kombiniert werden. Es kann mit diesen Flags als Teil des PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask-Werts kombiniert werden. |
Hinweise
Im Rahmen der erfolgreichen Authentifizierung eines anfänglichen Benutzers in einem Netzwerk kann ein Gerät versuchen, direkte Peer-to-Peer-Verbindungen mit anderen Geräten herzustellen, die bereits am Netzwerk beteiligt sind, sofern dies durch diese Flags zulässig ist, die in der PartyNetworkConfiguration-Struktur des Netzwerks deklariert sind. Bei erfolgreichen Versuchen werden Endpunktnachrichten und Chatdaten zwischen den Geräten mithilfe dieser direkten Verbindungen übertragen. Bei Versuchen, die aufgrund von Umgebungsinkompatibilitäten zwischen den Geräten fehlschlagen, wird die gesamte Kommunikation zwischen diesen Geräten stattdessen über transparente Cloudrelayserver übertragen. Wenn die Geräte keine direkten Peerverbindungen über diese Flags versuchen dürfen, tauschen sie niemals IP-Adressinformationen aus und übertragen immer Endpunktnachrichten und Chatdaten über transparente Cloudrelayserver.
Sie können feststellen, ob das lokale Gerät tatsächlich eine direkte Peer-zu-Peer-Verbindung mit einem bestimmten Remotegerät hergestellt hat, indem Sie PartyNetwork::GetDeviceConnectionType()aufrufen.
Eine erfolgreiche direkte Peerkonnektivität kann zu einer geringeren Latenz zwischen einigen Geräten führen, obwohl der Versuch, sie einzurichten, auch erfordert, dass Benutzer die IP-Adressen ihrer Geräte für andere offenlegen. Dies kann ein Problem für den Datenschutz sein oder böswilligen Benutzern ermöglichen, geräte und Internetverbindungen von Peers außerhalb des Titels zu attackieren. Es kann auch auf bestimmten Plattformen aus politischen Gründen nicht zulässig sein. Achten Sie darauf, die entsprechenden Flags für Ihre Leistungs- und Sicherheitsziele zu verwenden.
Neben dem PartyNetworkConfiguration::d irectPeerConnectivityOptions-Wert eines bestimmten Netzwerks können die Flags optional durch ein Gerät für alle Netzwerke, bei denen es sich authentifiziert, weiter eingeschränkt werden, indem PartyManager::SetOption() zum Festlegen von PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask verwendet wird. Alle Flags werden mithilfe einer bitweisen AND-Operation ausgewertet. Das heißt, ein bestimmtes Flag ist nur für das Gerätepaar eines bestimmten Netzwerks in Kraft, wenn es an drei Stellen aktiviert ist: der PartyNetworkConfiguration-Struktur des Netzwerks und den jeweiligen lokalen Maskenoptionen beider Geräte. Selbst wenn das Netzwerk der Partei direkte Peerkonnektivität in der relevanten Form zulässt, kann eines der Geräte einseitig von der Offenlegung der IP-Adresse und den direkten Verbindungsversuchen zwischen ihnen abbestellen, indem das Flag nicht aktiviert wird. Der PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask-Wert lässt standardmäßig alle direkten Peerverbindungen zu, die von Netzwerken aktiviert werden. Daher müssen Sie sie nur konfigurieren, wenn gerätespezifische Anforderungen bestehen, um zu verhindern, dass einige oder alle direkte Peerkonnektivitäten damit verbunden sind.
Um einen übermäßigen Ressourcenverbrauch zu vermeiden, verhindert die Parteibibliothek auch intern, dass ein bestimmtes Gerät versucht, mehr als eine konfigurierte maximale Anzahl von direkten Peerverbindungen über alle Netzwerke herzustellen, an denen es derzeit teilnimmt, auch wenn diese Flags dies zulassen. Dies wirkt sich nicht auf die Fähigkeit des Geräts aus, an großen oder mehreren Netzwerken mit mehr Remotegeräten teilzunehmen. Die Kommunikation mit zusätzlichen Geräten wird einfach über transparente Cloud-Relayserver übertragen. Um diese maximale Anzahl direkter Peerverbindungen zu ändern, verwenden Sie PartyManager::SetOption(), um PartyOption::LocalDeviceMaxDirectPeerConnections festzulegen.
Es wird empfohlen, dass Sie die Verfügbarkeit einer direkten Peer-zu-Peer-Verbindung für ein bestimmtes Gerätepaar nicht aktiv erzwingen (d. h. nicht PartyNetwork::LeaveNetwork() aufrufen, wenn PartyNetwork::GetDeviceConnectionType() einen anderen Wert als PartyDeviceConnectionType::D irectPeerConnection meldet), da die spezifische zugrunde liegende Übertragungsmethode die gesamte logische Kommunikationsfähigkeit nicht ändert. Wenn Ihr Spielentwurf strenge Anforderungen an die maximale Nachrichtenlatenz hat, die die direkte Peerkonnektivität fördern, ist es besser, Maßnahmen auf die aktuellen konkreten Beobachtungen dieser Latenz zu ergreifen, die von der Statistik PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds gemeldet werden, anstatt abstrakte Annahmen basierend auf dem Übertragungsmechanismus zu treffen. Andernfalls könnten Sie Benutzer ständig daran hindern, mit derselben Gruppe von Freunden zu spielen, die immer in der Nähe befindliche transparente Cloudrelayserver verwenden müssen, da umgebungsbedingte Faktoren außerhalb ihrer Kontrolle liegen.
Anforderungen
Kopfball: Party.h
Weitere Informationen
Party-Mitglieder
PartyNetworkConfiguration
PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask
PartyManager::SetOption
PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds
PartyLocalEndpoint::GetEndpointStatistics