六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 33|回复: 0

pushlet 学习记录

[复制链接]

升级  34.67%

24

主题

24

主题

24

主题

秀才

Rank: 2

积分
102
 楼主| 发表于 2013-1-23 01:24:36 | 显示全部楼层 |阅读模式
前两天看了下pushlet2.0.4,总结了它的大概思路:

客户端主要使用ajax每隔100ms通过get方式发送请求,请求入口为PushletServlet,在这主要是使用单例模式初始化了SessionManager(session管理器),这个session是它自己定义的实体类,生命周期通过timer来控制,另外还初始化了Dispatch类,如果请求类型为Join,则会给当前会话初始化一个session,然后进入到了Controller类,在Controller类的doCommand方法里判断请求类型做相应处理,如果类型为publish,通过Dispatcher.getInstance().multicast(aCommand.reqEvent);广播到所有session,这里用到了观察者模式,SessionManager来管理所有的session,如果有新消息,则通过循环sessionCache这个对象来通知到所有监听的session。

pushlet最大的问题就是不能集群,对于小型项目还能适应,中大型项目估计就不行了, 不知道官方是怎么解决这个问题,期待。。。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表