Sintaxe
Membros
maxUserCount uint32_t
O número máximo de usuários exclusivos permitidos na rede.
Esse valor deve ser maior que 0. Se um cliente violar esse limite ao chamar PartyNetwork::AuthenticateLocalUser(), a operação falhará de forma assíncrona e PartyAuthenticateLocalUserCompletedStateChange::result será definido como PartyStateChangeResult::NetworkLimitReached.
maxDeviceCount uint32_t
O número máximo de dispositivos que podem se conectar à rede.
As redes do PlayFab Party podem escalar para dar suporte a qualquer quantidade entre 2 e 128 dispositivos. O serviço escolherá uma configuração de retransmissão de rede otimizada para o seu cenário, portanto, é importante configurar maxDeviceCount em PartyNetworkConfiguration para corresponder ao número máximo esperado de dispositivos na sua rede. Se um cliente violar esse limite ao chamar PartyManager::ConnectToNetwork(), a operação falhará de forma assíncrona e PartyConnectToNetworkCompletedStateChange::result será definido como PartyStateChangeResult::NetworkLimitReached.
maxUsersPerDeviceCount uint32_t
O número máximo de usuários permitidos por dispositivo.
Esse valor deve estar entre 1 e c_maxLocalUsersPerDeviceCount, inclusive. Se um cliente violar esse limite ao chamar PartyNetwork::AuthenticateLocalUser(), a operação falhará de forma assíncrona e PartyAuthenticateLocalUserCompletedStateChange::result será definido como PartyStateChangeResult::NetworkLimitReached.
maxDevicesPerUserCount uint32_t
O número máximo de dispositivos permitidos por usuário.
Esse valor deve ser maior que 0. Se um cliente violar esse limite ao chamar PartyNetwork::AuthenticateLocalUser(), a operação falhará de forma assíncrona e PartyAuthenticateLocalUserCompletedStateChange::result será definido como PartyStateChangeResult::NetworkLimitReached.
maxEndpointsPerDeviceCount uint32_t
O número máximo de pontos de extremidade permitidos por dispositivo.
Esse valor deve estar entre 0 e c_maxNetworkConfigurationMaxEndpointsPerDeviceCount, inclusive. Se um cliente violar esse limite ao chamar PartyNetwork::CreateEndpoint() depois que a configuração de rede for disponibilizada, a chamada a PartyNetwork::CreateEndpoint() falhará de forma síncrona. Se o cliente já tiver enfileirado um número de criações de pontos de extremidade que viole o limite quando a configuração de rede for disponibilizada, o cliente será expulso da rede e uma PartyNetworkDestroyedStateChange será gerada.
directPeerConnectivityOptions PartyDirectPeerConnectivityOptions
Se e como dar suporte a tentativas de conexão direta ponto a ponto entre dispositivos na rede.
Como parte da autenticação bem-sucedida de um usuário inicial em uma rede, um dispositivo pode tentar estabelecer conexões diretas ponto a ponto com outros dispositivos que já participam da rede, quando permitido por esses sinalizadores. 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 de retransmissão em nuvem transparentes. Se os dispositivos não tiverem permissão desses sinalizadores para tentar conexões diretas ponto a ponto, 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 de retransmissão em nuvem transparentes. Você pode determinar se o dispositivo local realmente estabeleceu uma conexão direta ponto a ponto com um dispositivo remoto específico chamando PartyNetwork::GetDeviceConnectionType().
Uma conectividade direta ponto a ponto bem-sucedida pode oferecer menor latência entre alguns dispositivos, embora tentar estabelecê-la também exija que os usuários divulguem os endereços IP de seus dispositivos a outras pessoas, o que pode ser uma preocupação de privacidade ou permitir que usuários mal-intencionados possam atacar os dispositivos e as conexões de Internet de outros participantes fora do título. Ela também pode não ser permitida em determinadas plataformas por motivos de política. Use os sinalizadores apropriados para suas metas de desempenho e segurança.
Além do valor da rede específica configurado aqui, os sinalizadores podem opcionalmente ser restringidos ainda mais por um dispositivo para 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 sinalizador específico só estará realmente em vigor para um par de dispositivos de uma determinada rede se estiver habilitado em três lugares: neste campo para a rede e nas opções de máscara local de ambos os dispositivos. Mesmo que este campo permita a conectividade direta ponto a ponto 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 na opção de máscara do dispositivo local. O valor de PartyOption::LocalDeviceDirectPeerConnectivityOptionsMask por padrão permite todas as conexões diretas ponto a ponto habilitadas pelas redes, portanto, você só precisa configurá-lo se tiver requisitos específicos do dispositivo para impedir parte ou toda a conectividade direta ponto a ponto que o envolva.
Para evitar 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 diretas ponto a ponto em todas as redes das quais participa no momento, mesmo que permitido por esses sinalizadores. Isso não afeta a capacidade do dispositivo de participar de redes grandes ou múltiplas com dispositivos remotos adicionais. A comunicação com dispositivos adicionais simplesmente será transmitida por meio de servidores de retransmissão em nuvem transparentes. Para modificar esse número máximo de conexões diretas ponto a ponto, use PartyManager::SetOption() para definir PartyOption::LocalDeviceMaxDirectPeerConnections.
É recomendável que você não imponha ativamente a disponibilidade de uma conexão direta ponto a ponto para qualquer 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 direta ponto a ponto, é melhor agir com base nas observações concretas atuais dessa latência, conforme relatado 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 de retransmissão em nuvem transparentes próximos devido a fatores de ambiente fora do controle deles.
Requisitos
Cabeçalho: Party.hConfira também
Membros do PartyPartyNetwork::AuthenticateLocalUser
PartyAuthenticateLocalUserCompletedStateChange
PartyManager::ConnectToNetwork
PartyConnectToNetworkCompletedStateChange
PartyNetwork::CreateEndpoint
PartyNetworkDestroyedStateChange
PartyStateChangeResult
PartyDirectPeerConnectivityOptions
