

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Integre o gateway do jogador em um jogo
<a name="ddos-protection-integrate"></a>

Depois de criar uma frota habilitada para o Player Gateway, você deve atualizar o cliente e o back-end do jogo para integrá-los ao Player Gateway. O back-end do jogo recupera os endpoints de retransmissão e os tokens do gateway do jogador e os fornece aos clientes do jogo. Os clientes de jogos enviam todo o tráfego UDP para esses endpoints de retransmissão.

A integração segue esse caminho de chamada:

1. Seu back-end do jogo chama a `GetPlayerConnectionDetails` API para recuperar endpoints de retransmissão e tokens de gateway de jogador para cada jogador em uma sessão de jogo.

1. O back-end do seu jogo envia os endpoints de retransmissão e os tokens do gateway do jogador para o cliente do jogo.

1. Seu cliente de jogo anexa o token do gateway do jogador a todos os pacotes UDP de saída e envia os pacotes para os terminais de retransmissão.

1. A rede de retransmissão valida o token do gateway do jogador e direciona o tráfego para o servidor do jogo.

1. Seu servidor de jogo envia tráfego de volta ao seu cliente de jogo pelos mesmos caminhos de retransmissão.

## Integração de back-end
<a name="ddos-protection-integrate-backend"></a>

O back-end do seu jogo deve chamar a `GetPlayerConnectionDetails` API para recuperar endpoints de retransmissão e tokens de gateway de jogador para os jogadores. O back-end então fornece essas informações aos clientes do jogo.

### GetPlayerConnectionDetails API
<a name="ddos-protection-integrate-backend-api"></a>

A `GetPlayerConnectionDetails` API retorna detalhes de conexão para jogadores em uma sessão de jogo:

Endpoints e tokens de retransmissão  
Quando o gateway do jogador está ativado e suportado no local, retorna:  
+ **Endpoints de retransmissão — Vários endpoints** de retransmissão (endereço IP e porta) que variam entre os jogadores
+ **Token de gateway do jogador** — Token que o cliente deve anexar a todos os pacotes UDP (válido por pelo menos 3 minutos)
+ **Expiração** — Data e hora de expiração do token do Player Gateway

Conexão direta  
Quando o gateway do jogador não está habilitado ou não é suportado no local, retorna o endereço IP e a porta do servidor do jogo

Seu cliente de jogo deve ser projetado para lidar com os dois tipos de conexão.

Exemplo de chamada de API:

```
// C++ example using AWS SDK
Aws::GameLift::GameLiftClient client;
Aws::GameLift::Model::GetPlayerConnectionDetailsRequest request;
request.SetGameSessionId(gameSessionId);
request.SetPlayerIds(playerIds);  // Vector of player IDs

auto outcome = client.GetPlayerConnectionDetails(request);
if (outcome.IsSuccess()) {
    auto result = outcome.GetResult();
    auto connectionDetails = result.GetPlayerConnectionDetails();
    
    // Process each player's connection details
    for (const auto& detail : connectionDetails) {
        std::string playerId = detail.GetPlayerId();
        
        // Get relay endpoints (IP address and port)
        auto endpoints = detail.GetEndpoints();
        for (const auto& endpoint : endpoints) {
            std::string ipAddress = endpoint.GetIpAddress();
            int port = endpoint.GetPort();
        }
        
        // Get player gateway token
        auto token = detail.GetPlayerGatewayToken();
        
        // Get expiration time
        auto expiration = detail.GetExpiration();
        
        // Send endpoints and token to game client
    }
}
```

Veja [GetPlayerConnectionDetails](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetPlayerConnectionDetails.html)na *Referência da Amazon GameLift Servers API*.

### Atualize os endpoints de retransmissão
<a name="ddos-protection-integrate-backend-refresh"></a>

Ligue `GetPlayerConnectionDetails` periodicamente para fornecer aos jogadores endpoints atualizados quando os endpoints de retransmissão ficarem insalubres. Recomendamos chamar a API a cada 60 segundos para todos os jogadores em uma sessão de jogo. Para otimizar o uso da API, agrupe vários jogadores IDs em uma única chamada de API.

**Importante**  
Chamadas de atualização regulares são o principal mecanismo para fornecer endpoints atualizados aos jogadores. Embora os tokens do gateway do jogador permaneçam válidos por pelo menos 3 minutos, a atualização a cada 60 segundos garante que os jogadores recebam endpoints atualizados regularmente.

## Integração com o cliente
<a name="ddos-protection-integrate-client"></a>

Seu cliente de jogo deve anexar os tokens do gateway do jogador a todos os pacotes UDP de saída e enviar os pacotes para os terminais de retransmissão fornecidos. O SDK Amazon GameLift Servers do cliente para C\$1\$1 e Unreal Engine fornece utilitários para simplificar essa integração.

### Requisitos do cliente
<a name="ddos-protection-integrate-client-requirements"></a>

Para rotear o tráfego pelo gateway do jogador, seu cliente de jogo deve:
+ **Anexar tokens do gateway do player** — Prefixe o token do gateway do player a todos os pacotes UDP de saída. Os tokens do Player Gateway não devem ser criptografados e devem aparecer no início de cada pacote. Pacotes sem um token de gateway de jogador válido serão descartados.
+ **Enviar para terminais de retransmissão — Envie todos os pacotes UDP para os pontos finais** de retransmissão fornecidos.
+ **Manter a atividade de conexão** — Certifique-se de que o cliente do jogo envie um pacote para o servidor do jogo ou que o servidor do jogo envie um pacote para o jogador, pelo menos uma vez a cada 30 segundos. Essa atividade mantém a conexão por meio da rede de retransmissão.
+ **Gerencie atualizações de endpoints** — aceite endpoints de retransmissão e tokens de gateway de player atualizados do seu back-end (recomendado a cada 60 segundos) e faça a transição para novos endpoints sem interromper a conexão.

### SDK do cliente
<a name="ddos-protection-integrate-client-sdk"></a>

O SDK Amazon GameLift Servers do cliente para C\$1\$1 e Unreal Engine fornece utilitários para simplificar a integração do player gateway:
+ **Gerenciamento de tokens** — Anexa os tokens do gateway do player a todos os pacotes UDP de saída.
+ **Seleção de endpoint** — encaminha o tráfego para retransmitir endpoints usando um algoritmo configurável.
+ **Atualização do endpoint** — programa retornos de chamada periódicos para recuperar endpoints de retransmissão e tokens de gateway de player atualizados do seu back-end.

### Algoritmos de seleção de terminais
<a name="ddos-protection-integrate-client-algorithms"></a>

O SDK do cliente fornece dois algoritmos integrados para selecionar qual endpoint de retransmissão usar:

Algoritmo de fallback  
Usa um endpoint até que ele se torne insalubre e, em seguida, alterna para outro endpoint. Ideal para menus, lobbies e jogos baseados em turnos, onde breves interrupções são aceitáveis. Durante o failover do endpoint, os pacotes podem ser perdidos durante o período de tempo limite configurado (padrão: 2 segundos).

Algoritmo de rotação preditiva  
Percorre continuamente todos os endpoints disponíveis e prevê falhas antes que elas ocorram. Ideal para jogabilidade em tempo real, como jogos de tiro em primeira pessoa e jogos de corrida, onde a entrega consistente de pacotes é fundamental. Requer que o servidor do jogo envie mensagens com uma frequência consistente.

Você também pode implementar algoritmos personalizados estendendo a classe de algoritmo base do SDK.

### Recursos do SDK do cliente
<a name="ddos-protection-integrate-client-resources"></a>

Para obter instruções completas de integração e exemplos de código, consulte os seguintes recursos:

C\$1\$1  
Um SDK do cliente para C\$1\$1 está [Amazon GameLift Serversdisponível no SDK do cliente para](https://github.com/amazon-gamelift/amazon-gamelift-servers-client-sdk-for-cpp) C\$1\$1.

Unreal Engine  
Um plug-in para o Unreal Engine está disponível no [SDK Amazon GameLift Servers do cliente para o Unreal](https://github.com/amazon-gamelift-for-unreal/amazon-gamelift-servers-client-sdk-for-unreal) Engine. O acesso requer ser membro da organização Epic Games em GitHub. Consulte [Unreal Engine ativado GitHub](https://www.unrealengine.com/en-US/ue-on-github) para obter detalhes.

## Teste a integração
<a name="ddos-protection-integrate-testing"></a>

Antes de implantar em uma frota, teste sua integração com o Player Gateway localmente usando a ferramenta de teste Player Gateway. Essa ferramenta simula a infraestrutura de proxy UDP do gateway do player e ajuda você a verificar se o cliente do jogo insere corretamente os tokens do gateway do player, roteia o tráfego por meio de vários endpoints e lida com a degradação da rede.

Para obter instruções de configuração e uso, consulte o [aplicativo de teste do player gateway](https://github.com/amazon-gamelift/amazon-gamelift-toolkit/tree/main/player-gateway-testing-app) em GitHub.

## Práticas recomendadas
<a name="ddos-protection-integrate-best-practices"></a>

Siga estas melhores práticas ao integrar o Player Gateway:
+ **Atualize endpoints a cada 60 segundos** — Ligue a `GetPlayerConnectionDetails` cada 60 segundos para garantir que os jogadores recebam endpoints atualizados regularmente.
+ **Chamadas de API em lote** — Ao chamar `GetPlayerConnectionDetails` vários jogadores na mesma sessão de jogo, agrupe as chamadas para reduzir a sobrecarga da API.
+ **Mantenha a atividade de conexão** — Certifique-se de que o tráfego flua entre o cliente do jogo e o servidor do jogo pelo menos uma vez a cada 30 segundos. Isso pode ser qualquer um client-to-server ou server-to-client o tráfego.
+ **Gerencie as atualizações de endpoints com elegância** — Quando seu cliente de jogo recebe endpoints atualizados do back-end, faça a transição para os novos endpoints sem interromper a conexão do jogador.
+ **Escolha o algoritmo certo** — Selecione o algoritmo de seleção de endpoint que melhor atenda aos requisitos do seu jogo. Use o algoritmo de fallback para jogos baseados em turnos e o algoritmo de rotação preditiva para jogos em tempo real.