Uso de portas, firewall e requisitos de tamanho de pacote do PlayFab Party
Este tópico fornece detalhes sobre o uso de portas, o firewall e os requisitos de tamanho de pacote do PlayFab Party necessários para habilitar a comunicação de chat e de dados.Padrões de comunicação
O PlayFab Party usa dois padrões de comunicação:- Comunicação HTTPS, iniciada pelo chamador da API para vários serviços Web na nuvem, incluindo playfabapi.com.
- Comunicação segura baseada em soquete UDP com servidores transparentes de retransmissão na nuvem e outros dispositivos pares (se houver suporte).
PartyRegionsChangedStateChange inicial, relatarão PartyStateChangeResult::InternetConnectivityError.
No caso de problemas de solicitações a serviços Web, outras operações necessárias do PlayFab e da plataforma fora do Party, como as funções de login do usuário, provavelmente também falharão. Essas falhas costumam ser causadas por restrições de firewall locais ou por requisitos de proxy para conexões HTTPS. A maioria dos problemas pode ser resolvida habilitando a comunicação HTTPS direta de saída para os serviços Web na nuvem a partir do dispositivo ou da rede local.
Nomes de domínio HTTPS
O Microsoft PlayFab Party realiza conexões UDP e HTTPS com vários serviços na nuvem. Para garantir o funcionamento correto, os ambientes que filtram o tráfego HTTPS com base no nome de domínio precisam garantir que os seguintes nomes ou padrões de nome estejam acessíveis: Conectividade HTTPS:- *.playfabapi.com
- *.speech.microsoft.com
- api.cognitive.microsofttranslator.com
MTU e tamanhos de pacote
O PlayFab Party realiza automaticamente a fragmentação e a remontagem para ajustar mensagens grandes do aplicativo aos limites de tamanho de pacote do ambiente. Alguns ambientes de rede ainda podem causar falhas de comunicação, apesar dessa funcionalidade. Atualmente, o PlayFab Party espera que os ambientes deem suporte a uma Unidade Máxima de Transmissão (MTU) de pelo menos 1.419 bytes para evitar desempenho ruim ou possíveis falhas de conectividade. Esse tamanho de MTU tem suporte em ambientes típicos. Redes privadas virtuais (VPNs), túneis IPv4/IPv6 ou configurações administrativas explícitas podem reduzir o tamanho da MTU em uma ou em ambas as direções do caminho de rede entre o cliente do Party, o serviço ou outros clientes. Se a MTU com suporte de ponta a ponta em um determinado ambiente for insuficiente, a operaçãoPartyManager::ConnectToNetwork poderá falhar com PartyStateChangeResult::InternetConnectivityError. Como alternativa, a conectividade poderá ser bem-sucedida, mas o dispositivo poderá ter latência desnecessária, perda de pacotes ou desconexões inesperadas.
Algumas plataformas fornecem ferramentas para usuários finais, desenvolvedores ou provedores de serviços de Internet que ajudam a solucionar problemas de configuração de MTU em seus ambientes e que devem ser usadas, se possível.
Uso de portas UDP do dispositivo local
Por padrão, na maioria das plataformas, a biblioteca do PlayFab Party associa seu soquete UDP a uma porta local disponível atribuída dinamicamente pelo sistema operacional. Uma exceção é o Microsoft Game Core, em que o PlayFab Party, por padrão, se associa à “porta multijogador UDP local preferencial” dessa plataforma. Os títulos podem alterar esse comportamento para se associar a um número de porta local específico ou a uma porta disponível selecionada pelo sistema operacional diferente da “porta multijogador UDP local preferencial” do Microsoft Game Core, definindo a opçãoPartyOption::LocalUdpSocketBindAddress antes de chamar PartyManager::Initialize(). Se a porta solicitada já estiver em uso no seu título ou por outro aplicativo no dispositivo, PartyManager::Initialize() relatará um erro imediatamente ou o PartyRegionsChangedStateChange inicial relatará um erro PartyStateChangeResult::FailedToBindToLocalUdpSocket, e as operações assíncronas de criação de rede ou de conexão falharão.
É recomendável que os títulos usem o comportamento padrão de seleção de porta local para obter a máxima compatibilidade sem configuração, a menos que o usuário final solicite o contrário por um motivo específico do ambiente. Você poderá ter mais requisitos específicos da plataforma se o seu título usar valores não padrão. Consulte a documentação de cada plataforma para obter orientações sobre o uso de portas.
A comunicação do PlayFab Party sempre exige que os pacotes iniciados na saída e suas respostas subsequentes sejam permitidos dessa porta UDP local selecionada para os destinos remotos descritos na próxima seção. Os administradores de rede devem seguir as práticas recomendadas padrão da Internet para firewalls e Conversão de Endereços de Rede (NAT), como as da RFC 4787 - “Network Address Translation (NAT) Behavioral Requirements for Unicast UDP”, para obter a máxima compatibilidade. Essas práticas recomendadas são especialmente importantes para títulos que usam conexões ponto a ponto diretas em uma rede do Party, pois ambientes com suporte mínimo podem permitir a conexão à rede, mas impedir o estabelecimento dessa comunicação direta de um dispositivo para outro.
Endereços IP remotos e portas UDP
O Microsoft PlayFab Party fornece serviços dimensionados dinamicamente em várias regiões para oferecer a melhor latência aos usuários. Isso significa que não há um nome de host, endereço IP ou porta de destino remoto permanente que possa ser referenciado por administradores de rede interessados em restrições rigorosas de comunicação. A Microsoft fornece atualizações semanais de uma lista de intervalos de endereços IP do Azure que está disponível para download. Essa lista pode ser útil se for viável manter uma política continuamente sincronizada para restringir o tráfego da rede local. Na maioria dos casos, a manutenção contínua dessa lista é um desafio e está sujeita a falhas sutis de conectividade. Além disso, para conexões ponto a ponto diretas em uma rede do Party, os endereços IP dos clientes remotos também precisam ser conhecidos e habilitados para conectividade. Por esses motivos, recomendamos que os firewalls não restrinjam a conectividade com endereços IP remotos. O intervalo de portas remotas com suporte que pode ser usado pelo PlayFab Party pode incluir quaisquer portas fora do intervalo reservado de 0 a 1023 da Internet Assigned Numbers Authority (IANA). Atualmente, as retransmissões transparentes na nuvem só recebem números de porta de 30000 a 65535, mas a Microsoft se reserva o direito de alterar esse comportamento no futuro. Como prática recomendada, deve-se usar o intervalo de portas de 1024 a 65535. Isso é especialmente importante para títulos que usam conexões ponto a ponto diretas em uma rede do Party, pois as implementações de NAT normalmente atribuem portas desse intervalo. Bloquear portas remotas fora do intervalo completo recomendado também pode impedir a comunicação direta. Para habilitar a conectividade UDP, os ambientes que filtram o tráfego UDP com base no nome de domínio precisam garantir que os seguintes nomes ou padrões de nome estejam acessíveis:- *.cloudapp.azure.com
