Sintaxe
Constantes
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 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.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().
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.
Além do valor de PartyNetworkConfiguration::directPeerConnectivityOptions 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() para definir PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask. 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 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 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.
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() para definir PartyOption::LocalDeviceMaxDirectPeerConnections.
É 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() se PartyNetwork::GetDeviceConnectionType() relatar um valor diferente de PartyDeviceConnectionType::DirectPeerConnection), 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, 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.hConfira também
Membros do PartyPartyNetworkConfiguration
PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask
PartyManager::SetOption
PartyEndpointStatistic::AverageDeviceRoundTripLatencyInMilliseconds
PartyLocalEndpoint::GetEndpointStatistics
