

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea un servizio di backend per Amazon GameLift Servers
<a name="gamelift_quickstart_customservers_designbackend"></a>

Ti consigliamo di implementare un servizio client di gioco che autentichi i tuoi giocatori e comunichi con l'API. Amazon GameLift Servers Implementando un servizio client di gioco personalizzato, puoi:
+ Personalizza l'autenticazione per i tuoi giocatori.
+ Controlla il modo in cui Amazon GameLift Servers raggruppa i giocatori per nuove sessioni di gioco o per aggiungerle a sessioni di gioco esistenti.
+ Raccogli informazioni dalle tue risorse per fornire attributi di gioco sesplayer come la valutazione delle abilità per il matchmaking invece di fidarti del cliente.

L'utilizzo di un servizio client di gioco riduce anche i rischi per la sicurezza introdotti dai client di gioco che interagiscono direttamente con la tua API. Amazon GameLift Servers 

## Autenticazione dei giocatori
<a name="gamelift_quickstart_customservers_designbackend_auth"></a>

Puoi utilizzare Amazon Cognito e la sessione giocatore IDs per autenticare i tuoi client di gioco. Per gestire il ciclo di vita e le proprietà delle identità dei giocatori, utilizza i pool di utenti di Amazon Cognito.

Se preferisci, crea una soluzione di identità personalizzata e ospitala su. AWS Puoi anche utilizzare gli autorizzatori Lambda per la logica di autorizzazione personalizzata con API Gateway.

**Risorse aggiuntive:**
+ [Utilizzo di pool di identità (identità federate)](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) (Amazon Cognito Developer Guide)
+ [Guida introduttiva ai pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) (Amazon Cognito Developer Guide)
+ [Come configurare l'autenticazione dei giocatori con Amazon Cognito](https://aws.amazon.com/blogs/gametech/how-to-set-up-player-authentication-with-amazon-cognito/) (AWS per il blog dei giochi)

# Integra la funzionalità del client di Amazon GameLift Servers gioco
<a name="gamelift-sdk-client-api"></a>

Integra la funzionalità di hosting dei Amazon GameLift Servers giochi in tutti i componenti della soluzione che devono comunicare con il Amazon GameLift Servers servizio, ad esempio per ottenere informazioni sulle sessioni di gioco o creare nuove sessioni di gioco. Nella maggior parte dei casi, questa funzionalità è integrata nel componente del servizio di backend. Aggiungi funzionalità per le attività principali, tra cui:
+ Richiedi informazioni e lo stato delle sessioni di gioco attive.
+ Riserva uno slot per un nuovo giocatore in una sessione di gioco esistente.
+ Crea una nuova sessione di gioco per un gruppo di giocatori. 
+ Richiesta di abbinamento per uno o più giocatori.
+ Fornisci dati aggiornati per le sessioni di gioco esistenti.

Vedi [client/server Interazioni di gioco con Amazon GameLift Servers](gamelift-sdk-interactions.md) per ulteriori dettagli su come i componenti di hosting dei giochi interagiscono tramite Amazon GameLift Servers SDKs.

## Configura l'Amazon GameLift ServersAPI
<a name="gamelift-sdk-client-api-initialize"></a>

Aggiungi il AWS SDK per C\$1\$1 con Amazon GameLift Servers a un progetto.

Aggiungi codice per inizializzare un Amazon GameLift Servers client e memorizzare le impostazioni chiave. Questo codice deve essere eseguito prima di qualsiasi codice dipendente Amazon GameLift Servers da.

1. Imposta una configurazione client. Utilizza la configurazione client predefinita o crea un oggetto di configurazione client personalizzato. Per ulteriori informazioni, vedere [https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/struct_aws_1_1_client_1_1_client_configuration.html](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/struct_aws_1_1_client_1_1_client_configuration.html)(C\$1\$1) o [AmazonGameLiftConfig](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/GameLift/TGameLiftConfig.html)(C\$1).

   Una configurazione client specifica una regione e un endpoint di destinazione da utilizzare per i contatti. Amazon GameLift Servers La regione identifica l'insieme di risorse distribuite (flotte, code e matchmaker) da utilizzare. La configurazione client predefinita imposta la posizione nella regione Stati Uniti orientali (Virginia settentrionale). Per utilizzare qualsiasi altra regione, crea una configurazione personalizzata.

1. Inizializzare un client Amazon GameLift Servers. Usa [Aws:GameLift:: GameLiftClient ()](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-gamelift/html/class_aws_1_1_game_lift_1_1_game_lift_client.html) (C\$1\$1) o [AmazonGameLiftClient() (](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/GameLift/TGameLiftClient.html)C\$1) con una configurazione client predefinita o una configurazione client personalizzata.

1. Se utilizzi sessioni di gioco, aggiungi un meccanismo per generare un identificatore univoco per ogni giocatore. Per ulteriori informazioni, consulta [Genera giocatore IDs](player-sessions-player-identifiers.md).

1. Raccogli e archivia le seguenti informazioni:
   + **Flotta bersaglio**: se stai creando manualmente sessioni di gioco su una flotta specifica, fornisci un ID flotta o un ID alias che punti alla flotta bersaglio. Se la flotta è composta da più sedi, specifica un'ubicazione della flotta. Come best practice, utilizza gli alias della flotta in modo da poter passare i giocatori da una flotta all'altra senza dover aggiornare il servizio di backend.
   + **Coda di destinazione**: per i giochi che utilizzano code con più flotte per effettuare nuove sessioni di gioco, specifica il nome della coda a cui inviare le richieste di posizionamento.
   + **AWS credenziali**: tutte le chiamate Amazon GameLift Servers devono fornire le credenziali dell'host del gioco. Account AWS È possibile acquisire queste credenziali creando un utente giocatore, come descritto in. [Configura l'accesso programmatico per il tuo gioco](setting-up-aws-login.md#getting-started-iam-player-user) A seconda di come gestisci l'accesso per l'utente giocatore, procedi come segue: 
     + Se utilizzi un ruolo per gestire le autorizzazioni utente del giocatore, aggiungi il codice per assumere il ruolo prima di chiamare un'Amazon GameLift ServersAPI. La richiesta di assunzione del ruolo restituisce una serie di credenziali di sicurezza temporanee. Per ulteriori informazioni, consulta [Switching to an IAM role (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html) nella *IAM User Guide*.
     + Se disponi di credenziali di sicurezza a lungo termine, configura il codice per individuare e utilizzare le credenziali archiviate. Vedi [Autenticazione tramite credenziali a lungo termine nella Guida](https://docs.aws.amazon.com/sdkref/latest/guide/access-iam-users.html) di riferimento agli strumenti *AWS SDKs e* strumenti. [Per informazioni sulla memorizzazione delle credenziali, consulta i riferimenti AWS API per [(C\$1\$1) e (.NET)](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/class_aws_1_1_auth_1_1_a_w_s_credentials.html).](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html)
     + *Se disponi di credenziali di sicurezza temporanee, aggiungi il codice per aggiornare regolarmente le credenziali utilizzando AWS Security Token Service (AWS STS), come descritto in [Utilizzo delle credenziali di sicurezza temporanee con la Guida per l' AWS SDKs](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk)utente IAM.* Il codice deve richiedere nuove credenziali prima della scadenza di quelle precedenti.

## Ottieni sessioni di gioco attive
<a name="gamelift-sdk-client-api-find"></a>

Aggiungi codice per scoprire le sessioni di gioco disponibili e gestire le impostazioni e i metadati delle sessioni di gioco. 

**Cerca sessioni di gioco attive**

Consente [SearchGameSessions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_SearchGameSessions.html)di ottenere informazioni su una sessione di gioco specifica, su tutte le sessioni attive o sulle sessioni che soddisfano una serie di criteri di ricerca. Questa chiamata restituisce un [GameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameSession.html)oggetto per ogni sessione di gioco attiva che corrisponde alla richiesta di ricerca. Questo oggetto contiene il nome DNS, l'indirizzo IP e la porta di cui un client di gioco ha bisogno per connettersi alla sessione di gioco.

Utilizza i criteri di ricerca per ottenere un elenco filtrato di sessioni di gioco attive a cui possono unirsi i giocatori. Ad esempio, è possibile filtrare le sessioni come segue:
+ Escludi le sessioni di gioco complete:`CurrentPlayerSessionCount = MaximumPlayerSessionCount`.
+ Scegli le sessioni di gioco in base alla durata della sessione: Valuta`CreationTime`.
+ Trova sessioni di gioco in base a una proprietà di gioco personalizzata:`gameSessionProperties.gameMode = "brawl"`.

**Gestisci i dati delle sessioni di gioco**

Utilizzare una delle operazioni elencate di seguito per recuperare o aggiornare le informazioni sulla sessione di gioco.
+ [DescribeGameSessionDetails()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeGameSessionDetails.html) — Visualizza lo stato di protezione di una sessione di gioco oltre alle informazioni sulla sessione di gioco.
+ [UpdateGameSession()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_UpdateGameSession.html) — Modifica i metadati e le impostazioni di una sessione di gioco in base alle esigenze.
+ [GetGameSessionLogUrl](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetGameSessionLogUrl.html)— Accedi ai registri delle sessioni di gioco memorizzati.

## Crea sessioni di gioco
<a name="gamelift-sdk-client-api-create"></a>

Aggiungere codice per avviare nuove sessioni di gioco nei parchi di istanze distribuite e renderle disponibili ai giocatori. Esistono due opzioni per creare sessioni di gioco, a seconda di come la soluzione di hosting di giochi gestisce i posizionamenti delle sessioni di gioco.

**Crea una sessione di gioco con una coda in più sedi**

Si usa [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html)per inserire una richiesta per una nuova sessione di gioco in una coda. Per utilizzare questa operazione, crea una coda. Questo determina dove Amazon GameLift Servers colloca la nuova sessione di gioco. Per ulteriori informazioni sulle code e su come utilizzarle, consulta[Configura il posizionamento delle sessioni di gioco](queues-intro.md).

Quando crei un posizionamento per una sessione di gioco, specifica il nome della coda da utilizzare, un nome per la sessione di gioco, un numero massimo di giocatori simultanei e un set opzionale di proprietà del gioco. Facoltativamente, puoi anche fornire un elenco di giocatori a cui partecipare automaticamente alla sessione di gioco. Se includi i dati sulla latenza dei giocatori per le regioni pertinenti, Amazon GameLift Servers utilizza queste informazioni per collocare la nuova sessione di gioco su una flotta che offra l'esperienza di gioco ideale per i giocatori.

Per ottenere misurazioni accurate della latenza, utilizza i beacon Amazon GameLift Servers di ping UDP. Questi endpoint consentono di misurare l'effettiva latenza della rete UDP tra i dispositivi dei giocatori e le potenziali sedi di hosting, con il risultato di decisioni di posizionamento più accurate rispetto all'utilizzo dei ping ICMP. Per ulteriori informazioni sull'utilizzo dei beacon ping UDP per misurare la latenza, fare riferimento a. [UDP ping beacon](reference-udp-ping-beacons.md)

Il posizionamento delle sessioni di gioco è un processo asincrono. Dopo aver effettuato una richiesta, puoi lasciarla andare a buon fine o scadere. Puoi anche annullare la richiesta in qualsiasi momento utilizzando [StopGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StopGameSessionPlacement.html). Per verificare lo stato della tua richiesta di collocamento, chiama [DescribeGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeGameSessionPlacement.html).

**Crea una sessione di gioco su una flotta specifica**

Usa [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html)per creare una nuova sessione su una flotta specificata. Questa operazione sincrona riesce o non riesce a seconda che il parco disponga di risorse disponibili per ospitare una nuova sessione di gioco. Dopo aver Amazon GameLift Servers creato la nuova sessione di gioco e aver [GameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameSession.html)restituito un oggetto, puoi unirvi altri giocatori.

Quando usi questa operazione, fornisci un ID flotta o un ID alias, un nome di sessione e il numero massimo di giocatori simultanei per il gioco. In alternativa, è possibile includere un set di proprietà di gioco. Le proprietà del gioco sono definite in una serie di coppie chiave-valore.

Se utilizzi la funzionalità di protezione Amazon GameLift Servers delle risorse per limitare il numero di sessioni di gioco che un giocatore può creare, fornisci l'ID giocatore del creatore della sessione di gioco.

## Unisciti a un giocatore a una sessione di gioco
<a name="gamelift-sdk-client-api-join"></a>

Aggiungi codice per riservare uno slot per giocatore in una sessione di gioco attiva e connettere i client di gioco alle sessioni di gioco. Questa azione è disponibile se il gioco utilizza sessioni di gioco con un solo giocatore IDs. Per ulteriori informazioni sulle sessioni dei giocatori, consulta[Amazon GameLift Serverse l'esperienza del giocatore](game-sessions-intro.md).

1. 

**Riserva uno slot per giocatore in una sessione di gioco**

   Per riservare uno slot, crea una sessione giocatore per la sessione di gioco. Ci sono due modi per effettuare questa operazione:
   + Se utilizzi [StartGameSessionPlacement](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartGameSessionPlacement.html)o vuoi [ StartMatchmaking](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_StartMatchmaking.html)creare una sessione di gioco, puoi includere uno o più giocatori nella richiesta di creare sessioni di gioco per loro nella nuova sessione di gioco. 
   + Per aggiungere giocatori a una sessione di gioco esistente, chiama [CreatePlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreatePlayerSession.html)o [CreatePlayerSessions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreatePlayerSessions.html)con un ID di sessione di gioco.

   Una richiesta di sessione utente deve includere un ID giocatore univoco. Per ulteriori informazioni, consulta [Genera giocatore IDs](player-sessions-player-identifiers.md). Dopo aver ricevuto la richiesta, Amazon GameLift Servers verifica che la sessione di gioco accetti nuovi giocatori e che siano disponibili slot per giocatori. In caso di successo, Amazon GameLift Servers riserva uno slot per il giocatore, crea la nuova sessione di gioco e restituisce un [PlayerSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_PlayerSession.html)oggetto. 

   Una sessione di gioco può includere una serie di dati personalizzati del giocatore. Questi dati vengono memorizzati nell'oggetto della sessione del giocatore appena creato. Amazon GameLift Serverspassa questo oggetto al server di gioco quando il giocatore si connette direttamente alla sessione di gioco. Quando richiedi sessioni con più giocatori, associa ogni stringa di dati del giocatore a un ID giocatore.

1. 

**Connect a una sessione di gioco**

   Aggiungi codice al servizio di backend per recuperare l'`PlayerSession`oggetto (ad esempio chiamando [DescribePlayerSessions())](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribePlayerSessions.html) e passalo nuovamente al client di gioco. Questo oggetto contiene il nome DNS, l'indirizzo IP e la porta. Il client di gioco può utilizzare queste informazioni per stabilire una connessione diretta al server.
   + È possibile connettersi utilizzando la porta specificata e il nome DNS o l'indirizzo IP assegnato al processo del server.
   + Se le tue flotte hanno abilitato la generazione di certificati TLS, connettiti utilizzando il nome e la porta DNS.
   + Se il server di gioco convalida le connessioni dei giocatori in entrata, fai riferimento all'ID della sessione del giocatore.

   Dopo aver effettuato la connessione, il client di gioco e il processo server comunicano direttamente senza coinvolgere. Amazon GameLift Servers Il server mantiene la comunicazione con Amazon GameLift Servers cui segnalare lo stato della connessione del giocatore, lo stato di salute e altro ancora. 

   Se il server di gioco convalida i giocatori in arrivo, verifica che l'ID della sessione del giocatore corrisponda a uno slot riservato nella sessione di gioco e accetta o nega la connessione del giocatore. Quando il giocatore si disconnette, il processo del server segnala l'interruzione della connessione.

## Passa dati di gioco personalizzati a una sessione di gioco
<a name="game-properties"></a>

Il tuo client di gioco può trasferire dati a una sessione di gioco. Quando crei una sessione di gioco, puoi includere nella richiesta un set di proprietà di gioco (coppie chiave-valore) o dati della sessione di gioco (valori stringa). Puoi anche aggiornare una sessione di gioco esistente con dati di gioco nuovi o aggiornati. Questi dati vengono trasmessi al processo del server di gioco che ospita la sessione di gioco, per essere utilizzati dal codice del server di gioco. Non puoi eliminare le proprietà del gioco. 

Ad esempio, supponiamo che il gioco definisca i livelli di difficoltà: `Novice``Easy`,`Intermediate`, e`Expert`. Un giocatore sceglie di partecipare a una `Easy` partita. Il tuo client di gioco, tramite il servizio di backend, richiede una nuova sessione di gioco con la seguente proprietà di gioco:. `{"Key": "Difficulty", "Value":"Easy"}` In risposta, Amazon GameLift Servers richiede a un server di gioco disponibile di avviare una nuova sessione di gioco e passa l'oggetto. `GameSession` Il processo del server di gioco utilizza la proprietà di gioco fornita per impostare il livello di difficoltà della sessione di gioco. 

### Ulteriori informazioni
<a name="w2aab9c13c11c17b7"></a>
+ [GameProperty tipo di dati](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GameProperty.html) 
+ [SearchGameSessions() esempi](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_SearchGameSessions.html#API_SearchGameSessions_Examples) 
+ [UpdateGameSession GameProperties parametro ()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_UpdateGameSession.html#gamelift-UpdateGameSession-request-GameProperties) 

# Server di sessione di gioco autonomi con un backend senza server
<a name="gamelift_quickstart_customservers_designbackend_arch_serverless"></a>

Utilizzando un'architettura di servizio client serverless, il backend può visualizzare lo stato dei ticket di matchmaking da un database altamente scalabile anziché accedere direttamente all'API. Amazon GameLift Servers

Il diagramma seguente mostra un backend serverless costruito con Servizi AWS che abbina i giocatori alle partite in esecuzione su flotte. Amazon GameLift Servers L'elenco seguente fornisce una descrizione per ogni callout numerato nel diagramma. Per provare questo esempio, vedi Hosting di giochi [basato su sessioni multigiocatore](https://github.com/aws-samples/aws-gamelift-and-serverless-backend-sample) on on. AWS GitHub

![\[Esempio di architettura serverless che abbina i giocatori ai giochi in esecuzione su flotte. Amazon GameLift Servers\]](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/images/qs_arch_serverless.png)


1. Il client di gioco richiede un'identità utente Amazon Cognito da un pool di identità Amazon Cognito.

1. Il client di gioco riceve credenziali di accesso temporanee e richiede una sessione di gioco tramite un'API Amazon API Gateway.

1. API Gateway richiama una AWS Lambda funzione.

1. La funzione Lambda richiede i dati del giocatore da una tabella NoSQL di Amazon DynamoDB. La funzione fornisce l'identità di Amazon Cognito nei dati del contesto della richiesta.

1. La funzione Lambda richiede una corrispondenza tramite Amazon GameLift Servers FlexMatch matchmaking.

1. FlexMatchabbina un gruppo di giocatori con una latenza adeguata, e quindi richiede il posizionamento della sessione di gioco tramite una coda. Amazon GameLift Servers La coda ha flotte con una o più Regione AWS postazioni al suo interno.

1. Dopo aver effettuato Amazon GameLift Servers la sessione in una delle sedi della flotta, Amazon GameLift Servers invia una notifica di evento a un argomento di Amazon Simple Notification Service (Amazon SNS).

1. Una funzione Lambda riceve l'evento Amazon SNS e lo elabora.

1. Se il ticket di matchmaking è un `MatchmakingSucceeded` evento, la funzione Lambda scrive il risultato, insieme alla porta e all'indirizzo IP del server di gioco, in una tabella DynamoDB.

1. Il client di gioco invia una richiesta firmata ad API Gateway per visualizzare lo stato del ticket di matchmaking in un intervallo specifico.

1. API Gateway utilizza una funzione Lambda che verifica lo stato del ticket di matchmaking.

1. La funzione Lambda controlla la tabella DynamoDB per verificare se il ticket ha esito positivo. Se ha avuto successo, la funzione invia la porta e l'indirizzo IP del server di gioco, insieme all'ID della sessione del giocatore, al client. Se il ticket non è andato a buon fine, la funzione invia una risposta per verificare che la partita non sia ancora pronta.

1. Il client di gioco si connette al server di gioco tramite TCP o UDP utilizzando la porta e l'indirizzo IP forniti dal servizio di backend. Il client di gioco invia quindi l'ID di sessione del giocatore al server di gioco, che quindi convalida l'ID utilizzando l'SDK del server per. Amazon GameLift Servers

# Server di sessione di gioco autonomi con un backend basato WebSocket
<a name="gamelift_quickstart_customservers_designbackend_arch_websockets"></a>

Utilizzando un'architettura WebSocket basata su Amazon API Gateway, puoi effettuare richieste di matchmaking WebSockets e inviare notifiche push per il completamento del matchmaking utilizzando messaggi avviati dal server. Questa architettura migliora le prestazioni grazie alla comunicazione bidirezionale tra il client e il server.

Per ulteriori informazioni sull'utilizzo di API Gateway WebSock APIs, consulta [Working with WebSocket APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html).

Il diagramma seguente mostra un'architettura di backend WebSocket basata su API Gateway e altro Servizi AWS per abbinare i giocatori ai giochi in esecuzione su Amazon GameLift Servers flotte. L'elenco seguente fornisce una descrizione per ogni callout numerato nel diagramma.

![\[WebSockets Architettura di esempio che abbina i giocatori ai giochi che girano su flotte. Amazon GameLift Servers\]](http://docs.aws.amazon.com/it_it/gameliftservers/latest/developerguide/images/qs_arch_websockets.png)


1. Il client di gioco richiede un'identità utente Amazon Cognito da un pool di identità Amazon Cognito.

1. Il client di gioco firma una WebSocket connessione a un'API Gateway API con le credenziali di Amazon Cognito.

1. API Gateway richiama una AWS Lambda funzione sulla connessione. La funzione memorizza le informazioni di connessione in una tabella Amazon DynamoDB.

1. Il client di gioco invia un messaggio a una funzione Lambda, tramite l'API API Gateway tramite la WebSocket connessione, per richiedere una sessione.

1. Una funzione Lambda riceve il messaggio e quindi richiede una corrispondenza tramite Amazon GameLift Servers FlexMatch matchmaking.

1. Dopo FlexMatch le partite, un gruppo di giocatori, FlexMatch richiede il posizionamento di una sessione di gioco tramite una Amazon GameLift Servers coda.

1. Dopo aver effettuato Amazon GameLift Servers la sessione in una delle sedi della flotta, Amazon GameLift Servers invia una notifica di evento a un argomento di Amazon Simple Notification Service (Amazon SNS).

1. Una funzione Lambda riceve l'evento Amazon SNS e lo elabora.

1. Se il ticket di matchmaking è un `MatchmakingSucceeded` evento, la funzione Lambda richiede la connessione corretta del giocatore da DynamoDB. La funzione invia quindi un messaggio al client di gioco tramite l'API Gateway API tramite la WebSocket connessione. In questa architettura, il client di gioco non verifica attivamente lo stato del matchmaking.

1. Il client di gioco riceve la porta e l'indirizzo IP del server di gioco, insieme all'ID della sessione del giocatore, tramite la WebSocket connessione.

1. Il client di gioco si connette al server di gioco tramite TCP o UDP utilizzando la porta e l'indirizzo IP forniti dal servizio di backend. Il client di gioco invia inoltre l'ID di sessione del giocatore al server di gioco, che quindi convalida l'ID utilizzando l'SDK del server per. Amazon GameLift Servers