Utm详细实现-用户资源管理
在上面的 用户登录和 用户退出/用户断线示意图中 橙色背景的处理 为触发资源管理器的动作,总共有8个重要时间点:
1. beforeUserLoginCheck -> 2.1setLoginFlagSuccess-> 3.1beforeLoginLinkCheck -> 4.1 userIn -> 5. userOut
-> 2.2waitUserLogoutTimeOut -> 4.2 failInLoginLinkCheck
-> 2.3userLoginCheckFail
1. 游客申请登录,未执行用户登录检查(在onUserLoginCheck.before中被调用)
2.1. 登录检查成功且设置用户登录标志位成功(UserFlagBusiness.setLoginFlag返回成功)
2.2. 等待老用户退出超时(详见用户登录详细流程中的第3点 或 UserLogoutCheckBusiness类说明)
2.3. 登录失败(用户名密码等信息不正确(onUserLoginCheck.loginCheck返回null))
3.1. 登录检查成功且设置用户标志位成功后,准备 "登录连接检查" (OnUserLoginHandler.loginLinkCheck前)
4.1. 用户登录成功(成功登录到服务)
4.2. "登录连接检查"失败,用户在完成登录的过程中断线(OnUserLoginHandler.loginLinkCheck返回false)
5. 用户退出或断线
Utm中有两个重要的资源:用户队列 和 用户对象
1.用户队列:(详细可见:com.dc.utm.resource.user.queue.UserQueueResource)
1)在设置用户登录标志位成功“2.1setLoginFlagSuccess”,创建并保持用户队列
2)在"登录连接检查"失败“4.2failInLoginLinkCheck”,移除用户队列
3)在用户退出或断线“5.userOut”,移除用户队列
1.beforeUserLoginCheck -> 2.1setLoginFlagSuccess -> 3.1beforeLoginLinkCheck -> 4.1 userIn ->5. userOut
-> 2.2 waitUserLogoutTimeOut ->4.2 failInLoginLinkCheck
-> 2.3 userLoginCheckFail
2.用户对象:(详细可见:com.dc.utm.resource.user.user. )
1)在用户登录被执行前“3.1. beforeLoginLinkCheck”,创建并保持用户
2)在"登录连接检查"失败“4.2failInLoginLinkCheck”,移除用户
3)在用户退出或断线“5.userOut”,移除用户
1.beforeUserLoginCheck -> 2.1 setLoginFlagSuccess -> 3.1 beforeLoginLinkCheck -> 4.1 userIn -> 5. userOut
-> 2.2 waitUserLogoutTimeOut ->4.2 failInLoginLinkCheck
-> 2.3 userLoginCheckFail