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

# PartyDirectPeerConnectivityOptions

> Sinalizadores que controlam a tentativa de uso da conectividade ponto a ponto direta entre os dispositivos de uma rede.

Sinalizadores que controlam a tentativa de uso da conectividade ponto a ponto direta entre os dispositivos de uma rede.

## Sintaxe

```cpp theme={null}
enum class PartyDirectPeerConnectivityOptions  : int32_t  
{  
    None = 0x0,  
    SamePlatformType = 0x1,  
    DifferentPlatformType = 0x2,  
    AnyPlatformType = SamePlatformType | DifferentPlatformType,  
    SameEntityLoginProvider = 0x4,  
    DifferentEntityLoginProvider = 0x8,  
    AnyEntityLoginProvider = SameEntityLoginProvider | DifferentEntityLoginProvider,  
    OnlyServers = 0x10,  
}  
```

## Constantes

| Constante | Descrição | |
| - | - | - |
| None | Nenhum sinalizador é especificado.  A ausência de sinalizadores significa que nenhuma tentativa de conectividade ponto a ponto direta é permitida. Todas as mensagens de ponto de extremidade e os dados de chat entre os dispositivos sempre serão transmitidos por meio de servidores transparentes de retransmissão na nuvem, e nenhuma informação de endereço IP jamais será trocada. | |
| SamePlatformType | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos do mesmo tipo de plataforma.  Um par de dispositivos tentará estabelecer conexões ponto a ponto diretas se forem identificados como tendo o mesmo tipo de hardware e/ou plataforma de sistema operacional (por exemplo, PCs Windows, consoles de jogos XBOX, dispositivos móveis baseados em iOS) associado à biblioteca do Party específica que usam.   Observe que este sinalizador, por si só, não permite nenhuma tentativa de conectividade ponto a ponto direta. Ele deve ser combinado com um ou ambos os sinalizadores `SameEntityLoginProvider` e `DifferentEntityLoginProvider`.     Este sinalizador não pode ser combinado com o sinalizador `OnlyServers` na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md). Ele pode ser combinado com `OnlyServers` como parte do valor [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md). | |
| DifferentPlatformType | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos com tipos de plataforma diferentes.  Um par de dispositivos tentará estabelecer conexões ponto a ponto diretas se forem identificados como tendo tipos diferentes de hardware e/ou plataformas de sistema operacional (por exemplo, PCs Windows, consoles de jogos XBOX, dispositivos móveis baseados em iOS) associados às bibliotecas do Party específicas que cada dispositivo usa.   Observe que este sinalizador, por si só, não permite nenhuma tentativa de conectividade ponto a ponto direta. Ele deve ser combinado com um ou ambos os sinalizadores `SameEntityLoginProvider` e `DifferentEntityLoginProvider`.     Este sinalizador não pode ser combinado com o sinalizador `OnlyServers` na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md). Ele pode ser combinado com `OnlyServers` como parte do valor [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md). | |
| AnyPlatformType | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos, independentemente dos tipos de plataforma deles.  Este sinalizador equivale a \`\`\`SamePlatformType | DifferentPlatformType\`\`\`. |
| SameEntityLoginProvider | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos que tenham IDs de entidade do PlayFab de usuários autenticados que fizeram login usando o mesmo provedor.  Um dispositivo que esteja autenticando inicialmente um usuário local na rede tentará estabelecer conexões ponto a ponto diretas com dispositivos remotos que tenham pelo menos uma ID de entidade do PlayFab de usuário autenticado que tenha feito login usando o mesmo provedor (por exemplo, XBOX Live, Facebook, iOS, Google) que o usuário que está se autenticando.   Observe que este sinalizador, por si só, não permite nenhuma tentativa de conectividade ponto a ponto direta. Ele deve ser combinado com um ou ambos os sinalizadores `SamePlatformType` e `DifferentPlatformType`.     Este sinalizador não pode ser combinado com o sinalizador `OnlyServers` na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md). Ele pode ser combinado com `OnlyServers` como parte do valor [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md).   | |
| DifferentEntityLoginProvider | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos com IDs de entidade do PlayFab de usuários autenticados que fizeram login usando provedores diferentes.  Um dispositivo que esteja autenticando inicialmente um usuário local na rede tentará estabelecer conexões ponto a ponto diretas com dispositivos remotos que não tenham nenhuma ID de entidade do PlayFab de usuário autenticado que tenha feito login usando o mesmo provedor (por exemplo, XBOX Live, Facebook, iOS, Google) que o usuário que está se autenticando.   Observe que este sinalizador, por si só, não permite nenhuma tentativa de conectividade ponto a ponto direta. Ele deve ser combinado com um ou ambos os sinalizadores `SamePlatformType` e `DifferentPlatformType`.     Este sinalizador não pode ser combinado com o sinalizador `OnlyServers` na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md). Ele pode ser combinado com `OnlyServers` como parte do valor [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md). | |
| AnyEntityLoginProvider | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos, independentemente do provedor usado para o login das IDs de entidade do PlayFab dos usuários autenticados.  Este sinalizador equivale a \`\`\`SameEntityLoginProvider | DifferentEntityLoginProvider\`\`\`. |
| OnlyServers | Conexões ponto a ponto diretas podem ser tentadas entre dispositivos se pelo menos um dos dispositivos tiver um usuário autenticado com o tipo de entidade do PlayFab `game_server`.  Um dispositivo que esteja autenticando inicialmente um usuário local na rede tentará estabelecer conexões ponto a ponto diretas com dispositivos remotos se o usuário local ou um usuário do dispositivo remoto for do tipo de entidade do PlayFab `game_server`, conforme especificado para [PartyManager::CreateLocalUserWithEntityType()](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_createlocaluserwithentitytype.md). Em outras palavras, os dispositivos dos jogadores nunca se conectarão diretamente uns aos outros, apenas aos dispositivos de servidor. Os dispositivos de servidor tentarão se conectar diretamente a todos os dispositivos de jogadores e a outros dispositivos de servidor.   Este sinalizador não pode ser combinado com nenhum dos sinalizadores `SamePlatformType`, `DifferentPlatformType`, `SameEntityLoginProvider` ou `DifferentEntityLoginProvider` na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md). Ele pode ser combinado com esses sinalizadores como parte do valor [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md). | |

## Comentários

Como parte da autenticação bem-sucedida de um usuário inicial em uma rede, um dispositivo pode tentar estabelecer conexões ponto a ponto diretas com outros dispositivos que já participam da rede, quando permitido por estes sinalizadores declarados na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md) da rede. Para as tentativas bem-sucedidas, as mensagens de ponto de extremidade e os dados de chat entre os dispositivos serão transmitidos usando essas conexões diretas. Para as tentativas que falharem devido a incompatibilidades de ambiente entre os dispositivos, toda a comunicação entre esses dispositivos será transmitida por meio de servidores transparentes de retransmissão na nuvem. Se estes sinalizadores não permitirem que os dispositivos tentem conexões ponto a ponto diretas, eles nunca trocarão informações de endereço IP e sempre transmitirão mensagens de ponto de extremidade e dados de chat por meio de servidores transparentes de retransmissão na nuvem. \
\
&#x20;Você pode determinar se o dispositivo local realmente estabeleceu uma conexão ponto a ponto direta com um dispositivo remoto específico chamando [PartyNetwork::GetDeviceConnectionType()](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype.md).   \
\
&#x20;Uma conectividade ponto a ponto direta bem-sucedida pode proporcionar menor latência entre alguns dispositivos, embora tentar estabelecê-la também exija que os usuários divulguem os endereços IP dos seus dispositivos a outras pessoas, o que pode ser uma preocupação de privacidade ou permitir que usuários mal-intencionados ataquem os dispositivos e as conexões com a Internet de outros jogadores fora do título. Ela também pode não ser permitida em determinadas plataformas por motivos de política. Certifique-se de usar os sinalizadores apropriados para seus objetivos de desempenho e segurança.   \
\
&#x20;Além do valor de [PartyNetworkConfiguration::directPeerConnectivityOptions](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md) de uma rede específica, os sinalizadores podem, opcionalmente, ser ainda mais restringidos por um dispositivo em todas as redes nas quais ele se autentica, usando [PartyManager::SetOption()](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption.md) para definir [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md). Todos os sinalizadores são avaliados usando uma operação AND bit a bit. Ou seja, um determinado sinalizador só entra em vigor para um par de dispositivos de uma rede se estiver habilitado em três lugares: na estrutura [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md) da rede e nas respectivas opções de máscara local de *ambos* os dispositivos. Mesmo que a rede do Party permita a conectividade ponto a ponto direta da forma relevante, qualquer um dos dispositivos pode recusar unilateralmente a divulgação do endereço IP e as tentativas de conexão direta entre eles não habilitando o sinalizador. O valor [PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md) permite, por padrão, todas as conexões ponto a ponto diretas habilitadas pelas redes; portanto, você só precisa configurá-lo se tiver requisitos específicos do dispositivo para impedir parte ou toda a conectividade ponto a ponto direta que o envolva.   \
\
&#x20;Para evitar o consumo excessivo de recursos, a biblioteca do Party também impedirá internamente que qualquer dispositivo tente estabelecer mais do que um número máximo configurado de conexões ponto a ponto diretas em todas as redes das quais participa no momento, mesmo que permitido por estes sinalizadores. Isso não afeta a capacidade do dispositivo de participar de redes grandes ou de várias redes com mais dispositivos remotos. A comunicação com os dispositivos excedentes simplesmente será transmitida por meio de servidores transparentes de retransmissão na nuvem. Para modificar esse número máximo de conexões ponto a ponto diretas, use [PartyManager::SetOption()](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption.md) para definir [PartyOption::LocalDeviceMaxDirectPeerConnections](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md).   \
\
&#x20;É recomendável que você não imponha ativamente a disponibilidade de uma conexão ponto a ponto direta para nenhum par de dispositivos (ou seja, não chame [PartyNetwork::LeaveNetwork()](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_leavenetwork.md) se [PartyNetwork::GetDeviceConnectionType()](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_getdeviceconnectiontype.md) relatar um valor diferente de [PartyDeviceConnectionType::DirectPeerConnection](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partydeviceconnectiontype.md)), pois o método de transmissão subjacente específico em uso não altera a capacidade lógica geral de comunicação. Se o design do seu jogo tiver requisitos rigorosos de latência máxima de mensagens que incentivem a conectividade ponto a ponto direta, é melhor agir com base nas observações concretas atuais dessa latência, conforme relatadas pela estatística [PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyendpointstatistic.md), em vez de fazer suposições abstratas com base no mecanismo de transmissão. Caso contrário, você poderá prejudicar continuamente usuários que tentam jogar com o mesmo grupo de amigos e que sempre precisam usar servidores transparentes de retransmissão na nuvem próximos devido a fatores do ambiente fora do controle deles.

## Requisitos

**Cabeçalho:** Party.h

## Confira também

[Membros do Party](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/party_members.md)\
[PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md)\
[PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md)\
[PartyManager::SetOption](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_setoption.md)\
[PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyendpointstatistic.md)\
[PartyLocalEndpoint::GetEndpointStatistics](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/classes/PartyLocalEndpoint/methods/partylocalendpoint_getendpointstatistics.md)


## Related topics

- [PartyOption](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/enums/partyoption.md)
- [PartyNetworkConfiguration](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/structs/partynetworkconfiguration.md)
- [Notas de versão do PlayFab Party](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/release-notes.md)
- [Visão geral da API C/C++ do Party](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/reference/party_members.md)
- [DirectPeerConnectivityOptions](https://docs.xbox.com/pt-BR/services/playfab/multiplayer/networking/unity-party-api-reference/enums/partyunitydirectpeerconnectivityoptions.md)
