登陆流程-账号登陆

上一篇文章写了获取服务器信息的流程,漏掉了真正的第一步(账号登陆流程),这边补充一下

客户端

1)创建一个会话Seesion用于跟后端通讯

1
Session accountSession = zoneScene.GetComponent<NetKcpComponent>().Create(NetworkHelper.ToIPEndPoint(address));

NetKcpComponent:用于前后端通讯的组件

2)在OuterMessage.proto中定义登陆账号的前后端协议C2A_LoginAccount以及A2C_LoginAccount

3)通过步骤(1)创建的Session调用Call方法,将输入的账号密码填入 C2A_LoginAccount 中并发起请求,如果请求成功,则在zoneScene中添加SessionComponent组件并记录下步骤(1)创建的会话session以供后续使用(失败的话调用accountSession?.Dispose()避免会话资源的浪费).

4)在该会话中添加心跳检测组件PingComponent,这个组件会跟后端定期联络,告诉后端这个会话还有效,避免客户端出现闪退等异常情况没有通知后端关闭会话,导致后端一直持有这个已经无效的会话的情况。

5)客户端新增组件AccountInfoComponent用来保存从后端获取的Token以及当前登陆的账号ID

后端

处理客户端发来的C2A_LoginAccount请求

登陆流程如上图,一开始在添加AccountCheckOutTimeComponent这一部分有疑问,因为在设定的时间后会被断开连接,那不就是会被踢下线吗,到后面才知道这个连接到账号服只是第一步,后面客户端会以其他方式跟后端建立连接,所以不用有这个担心

至此账号登陆账号服与注册流程已经完成


登陆流程-账号登陆
http://example.com/2023/04/02/登陆流程-账号登陆/
Author
John Doe
Posted on
April 2, 2023
Licensed under