跳到主要内容

Proxy Module 与 Handshake

最后更新:2026 年 7 月 16 日

Proxy Module 是客户端进入 PlayServ 的物理入口。它负责 handshake 流程,校验连接的前置条件,应用连接策略,然后才允许客户端在逻辑上就绪、参与服务端的 gameplay 逻辑。

handshake 提供了一个受控的单点:在客户端被认定为就绪之前,PlayServ 可以在这里校验身份和 Session 约束。连接策略的决策也在这里执行。

信息

当客户端需要与 PlayServ 建立 Session,并进入一个 gameplay 系统可以安全开始工作的状态时 —— RPC 调用、Event、Group 和数据订阅 —— 就使用这个流程。


handshake 流程​

通过失��败返回要保留的 Session:全部、仅新的、一个都不留客户端调用 Ready()校验 token 与 GameId授权连接被拒绝连接策略TooManyConnections RPC注册连接按 GameId逻辑上已接入接入 Game Server发出 ClientReady服务端决定放行或拒绝
1

授权与基本校验

在 handshake 过程中,Proxy 会执行授权:

  • 校验客户端 token
  • 校验 GameId

校验不通过则拒绝该连接。

2

连接策略:同一设备的多个连接

如果 Proxy 发现同一个 UserDeviceToken 存在多个活跃连接,并且服务端代码中声明了 TooManyConnections 这个 RPC 方法,就会调用它。

这个方法接收:

  • Current —— 新的 Session
  • All —— 所有 Session,包括新的这一个

方法返回应当保持活跃的 Session 列表。

[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
}
}
注意

连接策略在客户端被认定为就绪之前就已生效。请把 TooManyConnections 看作那道关卡 —— 它决定新连接能否与之前的连接共存。

3

注册连接

所有检查都通过后,Proxy 会按 GameId 注册这个客户端连接。

4

逻辑连接与 ClientReady

客户端在逻辑上接入 Game Server —— 也就是运行在 RPC Module 中的游戏代码 —— 之后,会发出 ClientReady 这个 Event。

到了这一步,Game Server 就可以做出最终决定:是否允许该客户端参与游戏。


下一步​