游戏服务端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:
| 检查 | 失败回包 |
|---|---|
未过账号验证 |
|
年龄(未成年防沉迷逻辑目前注释掉) | — |
客户端版本不在 min/max |
|
没有 center |
|
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:
