先上一个简单的流程示意图



手游 服务器架构 手游服务器端_游戏


然后再从客户端输入用户名和密码开始说起:

1、客户端输入用户名和密码登录渠道

流程:
1 客户端输入渠道账号user_name和密码password;
2 登录,登录SDK成功之后,会返回一个token令牌;
3 保存token;

传入: app_id、app_key、user_name、password
返回: token

说明:
app_id和app_key是游戏制作方在接入渠道sdk时申请的;
user_name和password需要游戏玩家自己申请,有的渠道支持游客登录。

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

2、客户端获取服务器列表

流程
1 登录成功之后可以获取服务器列表server_list;
2 显示服务器列表;

返回: server_list

说明:
游戏服务器列表一般是通过配置在客户端的一个链接直接获取的。
这个配置文件可以通过资源更新的方式更新,客户端可以根据服务器列表选择要进入的区服。

3、客户端链接登录服

1 客户端从服务器列表选择要登陆的服务器;
2 通过选择的服务器可以得到登录服的ip和port;
3 登录获取游戏服的ip和端口;

传入: token
返回: ip、port

说明:
在登录成功之后会返回游戏服服的ip和port。

4、服务端验证token

1 登录服拿到客户端传入的token;
2 将token传给认证服,拿给渠道验证;
3 渠道验证成功之后会返回aid,然后保存认证信息(登录游戏服的时候会用到);
4 根据负载均衡分配游戏服ip和port,返回给客户端;

传入: app_id、app_key、token
渠道返回: aid
返回给客户端: ip、port、aid

说明:
渠道验证一般也是一个链接,在渠道的开发文档中会给出;
如果客户端用的是游客账号登录,以后绑定账号之后aid也不会改变,除非是更换了设备,或者卸载游戏重新安装;
保存认证信息是为了防止玩家在没有通过认证的情况下直接登录游戏服,
大型手游后端会有多台游戏服务器,登录服会根据负载均衡分配一台游戏服给玩家。

5、客户端链接游戏服

1 拿到登录服返回的ip和port及aid之后断开与登录服的链接;
2 拿新的ip和port登录游戏服;

传入: aid

6、服务端返回玩家信息

1 拿到aid之后到认证服中验证改玩家是否登录;
2 认证成功之后返回玩家该服务器上角色信息;
3 进行游戏。

返回: 角色信息

以上就是大型手游登录的全部流程。

这个过程中会涉及到三方:客户端,渠道,服务端;
服务端分为三种:登录服,认证服,游戏服。