游戏服务端gate功能

一、gate服务功能简述:

(1)客户端通过dispatch获取进行信息请求的gate服务地址

(2)gate将客户端验证账号和个人信息的消息往login服务转发进行验证,login验证完成后给gate 发送消息,验证成功后将数据存储在客户端与gate的Tcp连接的session里面

(3)将登陆信息发送至center服务,center分配game服务地址给gate

(4)gate后续可以对game服务发送正常game请求

二、gate基本请求处理和说明

switch msgId { case protocol.PlayerPingReq: 1: case protocol.VerifyLoginTokenReq: 2: case protocol.SetRealNameInfoReq: 3: case protocol.PlayerLoginReq: 4: case protocol.AskPhoneVerifyCodeReq: 5: case protocol.DeletePlayerAccountReq: 6: case protocol.BindAccountReq: 7: default: 8:

1、gate 本地直接回PlayerPingRsp(带回ReqTime),不转发。用来保活、测 RTT。

2、转给 login:

  • 没有 login → 本地回SYS_ERR
  • 有则补PlayerSessionId/SessionVersion,原包转 login

账号鉴权入口(token 验完后 session 才会AccountVerified)。

3、转 login,Meta 带上PlayerId、session 信息。没有 login 则本地回错。

4、gate 侧先拦几道,再转 center:

检查失败回包

未过账号验证!AccountVerified

ACCOUNT_UNAUTH

年龄(未成年防沉迷逻辑目前注释掉)

客户端版本不在 min/max

CLIENT_VERSION_TOO_LOW

没有 center

SYS_ERR

PlayerLoginReq时 gate 只看本地标记,真正的账号校验在更早的 login 上完成

通过后把生日、tags、年龄段、账号类型/名等塞进 Meta,转 center,由 center 分配/拉起 game。

5、要手机验证码

转 login(同样带 session Meta)。没有 login → 本地回错。

6、删号

转 login,Meta 带当前AccountName/AccountType

7、BindAccountReq— 绑定账号

转 login,除当前 session 外,还带上旧账号信息(PreviousAccountName/PlayerId/AccountType),供绑定流程用。

8、default— 其它所有业务消息

统一转 该玩家所在的 game: