Proxy Module e Handshake
Última atualização: 16 de julho de 2026
O Proxy Module é o ponto de entrada físico do cliente no PlayServ. Ele conduz o fluxo de handshake, valida os pré-requisitos da conexão, aplica a política de conexão e só então permite que o cliente fique logicamente pronto para a lógica de gameplay do lado do servidor.
O handshake oferece um único ponto controlado onde o PlayServ pode validar identidade e restrições de Session antes de o cliente ser considerado pronto. É aqui que as decisões de política de conexão são aplicadas.
Use este fluxo sempre que um cliente precisar estabelecer uma Session com o PlayServ e chegar a um estado em que os sistemas de gameplay possam começar a funcionar com segurança — chamadas RPC, Events, Groups e Subscriptions de dados.
Fluxo do handshake
Autorização e validação básica
Durante o handshake, o Proxy faz a autorização:
- valida os tokens do cliente
- valida o
GameId
Se a validação falha, a conexão é rejeitada.
Política de conexão: várias conexões por dispositivo
Se o Proxy detecta várias conexões ativas para o mesmo UserDeviceToken, ele invoca o método RPC TooManyConnections, caso esteja declarado no código do servidor.
O método recebe:
Current— a nova SessionAll— todas as Sessions, incluindo a nova
O método retorna a lista de Sessions que devem permanecer ativas.
[Server]
public class ClientConnection
{
// Connection policy validation
public Session[] TooManyConnections(Session Current, Session[] All)
{
// Current - new session
// All - all sessions including the new one
return All; // keep all sessions, allow the new connection
return [Current]; // close all sessions except the new one
return []; // close all sessions for the user
}
}
A política de conexão é aplicada antes de o cliente ser considerado pronto. Trate TooManyConnections como o portão que decide se a nova conexão pode coexistir com as anteriores.
Registrar a conexão
Se todas as verificações passam, o Proxy registra a conexão do cliente por GameId.
Conexão lógica e ClientReady
Depois que o cliente está logicamente conectado ao Game Server — o código do jogo que roda no RPC Module — o Event ClientReady é emitido.
É neste ponto que o Game Server pode tomar a decisão final sobre permitir ou não que o cliente participe do jogo.
Próximos passos
- Session Lifecycle & States — como os resultados do handshake se traduzem em estados da Session
- User Login & Authentication — como a autenticação afeta o caminho do handshake
- RPC & Server-side Game Logic — onde fica o código do game server que reage a
ClientReady