- 浏览: 4419 次
- 性别:
- 来自: 深圳
最新评论
文章列表
1.Utm-简介
GitHub: https://github.com/dga4654dan/UTM ( utm相关:https://github.com/dga4654dan/QTM)
Git@OSC: http://git.oschina.net/daemon_c/UTM ( utm相关:http://git.oschina.net/daemon_c/QTM)
UTM-Demo
GitHub: https://github.com/dga4654dan/UTM-DEMO(SmartFoxServer,Netty)
Git@OSC: http:// ...
Utm示例-Netty集成
在各个平台上集成utm主要是通过一个过滤器将该平台收到的信息转发到utm里,由utm线程调度处理。
Netty4(4.1.0.Beta5)
一个Java写的基于NIO的客户,服务器端编程框架,这里就不介绍关于Netty的基本内容了,只是关注如何在Netty4上集成utm。(这次是本人刚接触Netty,所以可能对于其中的一些细节不甚了解,如果有什么不对的地方希望大家提出)。
测试代码中前后端交互的编码使用了 netty自带的长度LengthFieldxxx和自己定义的消息体编码CommonObjB(这里就不做详细介绍);而客户端采用的是java写的 ...
Utm示例-SmartFoxServer集成
在各个平台上集成utm主要是通过一个过滤器将该平台收到的信息转发到utm里,由utm线程调度处理。
SmartFoxServer(这里测试使用的是2.9.0版本(在商用稳定运行的是2.7.0,由于该版本已经比较老所以这里没有使用))
一个Java写的跨平台socket服务端(收费),它已经实现了在很多平台上的客户端api(flash、html5、ios、android等),开发起来比较便捷,这里就不介绍关于smartFoxServer的基本内容了,只是关注如何在sfs上集成utm。(在sfs上的utm是经过一定商用环境的测试,稳定 ...
Utm示例-公共部分
首先实现各个事件(登录检查、登录、退出、断线)的处理
1. 登录检查:
继承com.dc.utm.handler.login.OnUserLoginCheckHandler类,实现抽象方法:
queueFull:队列满:在该方法中给前端发送信息提示服务器繁忙不受 ...
Utm线程模型
游客请求和用户请求分别调用UserThreadModeFilter的handleVisitorRequest和handleUserRequest方法,之后再调用各自的过滤器(在UserThreadMode实例化时传入)处理。
默认的游客处理器:VisitorRequestFilterNotQueue:并没有采取队列的 ...
Utm详细实现-用户资源管理
在上面的 用户登录和 用户退出/用户断线示意图中 橙色背景的处理 为触发资源管理器的动作,总共有8个重要时间点:
1. beforeUserLoginCheck -> 2.1setLoginFlagSuccess-> 3.1beforeLoginLinkCheck -> 4.1 userIn -> 5. userOut
-> 2.2waitUserLogoutTimeOut ...
Utm详细实现-用户生命流程
1.用户生命流程:
首先,最基本的 就是“游客” 和“用户” 之间身份的转变:
客户端连接到服务端后,这个时候认为连接的客户端是一个游客;客户端请求登录且登录成功后则转变成一个用户;如果用户退出,则又变回游客。
然后,再看每个操作(登录、退出、断线)的具体流程:
用户登录:
用户登录过程主要分成两部分:登录检查(OnUserLoginCheckHandler) 和 登录(OnUserLoginHandler)
登录检查:对用户的账号密码等信息经行验证(在这个阶段,这个请求时属于一个游客发起的 ...
2.Utm-模块设计
详细图:
Qtm:Qtm是Utm的核心,是一个队列线程模型,提供一个任务队列,可以往其中添加任务,qtm会调用线程池中的线程去依次处理这个队列中的任务,有点类似于java原生的BolkingQueue,为什么不是使用BolkingQueue:相对来说qtm提供了更适应这个需求的封装和为以后预留了更好的扩展的空间。
用户资源的管理:提供了用户生命流程中的各个重要点的切面,让开发者可以很清晰的看到资源的申请和回收,也可以更好的管理自己定义的用户资源。
事件管理器:提供用户事件管理,异常事件管理,等事件,默认实现里面包含 ...