分布式音视频服务器之登陆

本文讲述的是分布式音视频服务器之登陆.

设计上:

1)账号名请求登陆。在第一次登陆时需要进行完整的账号密码验证,验证通过后,正常登陆服务器后,为了简化登陆流程,客户端可以请求token,以便以后的快速登陆,在前端就表现为记密码登陆。

2)开始正常登陆。请求登陆验证成功后(不管是账号名请求登陆的账号验证,还是请求记密码登陆的token验证),就开始正常登陆,并获取角色相关数据以及其他数据。

3)登陆后请求Token 。正常登陆服务器后,客户端可以请求token,并把token加密保存到本地文件,以便以后的请求记密码登陆。

4)请求记密码登陆(imid+token登陆,imid是指角色id)。使用之前记录的token和角色id来快速验证登陆。


涉及的服务器类型如下:

FLServer :前端服务器。负责接入客户端,处理登陆请求。

HLServer:平台账号服务器。管理账号的生成以及查询。

NameServer:命名服务器。负责根据账号生成以及检查用户ID。

FLSuperServer:前端管理服务器。负责分配合适的网关。

GatewayServer:网关服务器。负责客户端正常登陆后的消息转发。

TokenServer:Token服务器。负责生成客户端登陆的Token并存档。

TokenVerifyServer:Token前端服务器。负责接入客户端并转发请求到TokenServer(如果有拓展其他类型的TokenServer,会根据类型选择转发)。

SessionServer:会话服务器。缓存了角色基本信息和状态。

1、通行证/账号名请求登陆

返回需要登陆的网关给客户端。之后可以开始正常登陆

1)发送用户请求登陆到FLServer 

2)转发请求到HLServer,查账号表,检查账号和密码合法性

3)转发请求到NameServer,根据账号检查对应的用户ID(登陆过的),或者分配一个对应玩家ID并存档(没有登录过的)

4)转发请求到FLSuperServer,由网络类型以及各个网关负载,选择合适网关

5)转发请求到GatewayServer,记录用户ID(IMID)到网关登录会话,记录登陆会话到登录会话管理器(为了登陆网关验证)。返回网关socket加密秘钥(des)、端口和ip给客户端。

2、开始正常登陆

(1)登陆网关

1)发送登陆请求到GatewayServer

2)GatewayServer注册用户,初始化网关连接,返回用户断线重连随机数、请求心跳

3)转发登录请求到其他服务器

(2)登陆SessionServer

1)请求角色基础信息

2)请求好友分组信息

3)请求用户Vip状态

4)请求公会任务 

5)获取用户关系信息


3、登陆后请求Token 

在正常登陆到网关服务器之后,请求token ,并存于客户端本地并加密,以便于以后的记密码快速登陆

1)发送请求到TokenServer,根据imid获取token,没有则生成。(从内存读取token,或从memcache或mysql读取)


4、请求记密码登陆

imid+token登陆.返回需要登陆的网关给客户端。之后可以开始正常登陆

1)发送请求到TokenVerifyServer,如果token类型是IM类型的就发送到TokenServer(否则到GameTokenServer ,是其他类型账号的登陆)

2)转发请求到TokenServer,验证imid和token的合法性

3)转发到FlSuperServer,选择合适的网关

4)转发到GatewayServer,记录登陆会话,加上网关的IP和端口

5)返回信息到客户端(经过TokenServer和TokenVerifyServer)


消息流程如下图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值