`
8366
  • 浏览: 800124 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

推模式的研究

    博客分类:
  • AJAX
阅读更多

 

 第一次参见公司的职称评定,评委问了一个问题,是我做权限管理那块的,说admin 管理员修改了一个用户的权限,让这个正在使用中的用户不能再 查看系统日志了 ,如何立刻反映到这个用户上。

 

    我说 可以使用一个线程根据用户ID去请求后台,吧最新的权限信息同步到前台,这也是一个笨办法,能解决问题,可以不巧妙,如果我当时对推模式有所研究 一定会回答好这个问题。

 

 

        推模式的 好处是由后台主动把信息退送到客户端 (比如浏览器),引起客户端 (比如HTML DOM结构变化)的变化,使用推模式就能很好的解决 我答辩时的问题,我那种扫描轮询的方式 会加大服务的压力

 

 

 首先了解下什么是 推模式,以及一个 推模式的开源实现 (DWR)

 

以下是来自网上:

 

ajax 推模式
http://www.iteye.com/topic/155609
一个例子 聊天室
http://www.iteye.com/topic/199079
DWR 长连接方式的若干问题
http://www.blogjava.net/josson/archive/2008/03/31/189810.html

DWR推技术在开发中需要注意的ScriptSession问题
http://www.blogjava.net/zhyiwww/archive/2009/02/24/236318.html

深入理解基于 HTTP 长连接的“服务器推”技术(Comet)
http://bbs.phpchina.com/viewthread.php?tid=100836

http://hi.baidu.com/renyangok/blog/item/f4bb66803fbdadd2bc3e1ea3.html

 

 dwr推

http://chenjumin.iteye.com/blog/690071

 

下面是 来自晚上的一个 聊天室的 推模式(使用DWR)的例子 我做了简单的修改

 

1. 聊天室用户信息 使用单例模式 放在一个Vector中 ,以前是网上的例子是放在list中的,这样做事为了解觉并发问题,应为 Vector 是同步的

 

2.小米同学做个一个简单的界面

 

3.对方法在session 中的用户 User 实现了 HttpSessionBindingListener 接口 用户推出 或者session 超时时候引起

 

聊天室人数变化 会直接推送到 前台页面

 

 

基本的原理是 使用http/1.1的长连接 监听某个页面,然后将服务器上的数据推送到 监听的页面,由于是服务器端主动推送数据的 所以高效 省时,节约资源

 

 

另外:

 web服务器 所能处理的链接数 是有限的,每个用户都开一个长链接 而不释放,当连接数达到峰值时候会 阻塞后面的链接,因此需要 连接池技术 或者 叫链接 复用 ,好在这个问题 已经有解决方案了,我自己还没实现,最近加班忙的很 等闲了 我在给以前的 chat 加上 连接池!

 

面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序

http://www.ibm.com/developerworks/cn/java/j-jettydwr/

 

注:

 

1.附件中是聊天室 的 源码 导入 eclipse 可直接修改!

2.将聊天室发布在tomcat中,验证推模式

   a.首先建立  chat.xml 在 tomcat的  D:\apache-tomcat-6.0.18\conf\Catalina\localhost 下 ,内容如下(根据自己的tomcat安装目录做相应的修改) :

 

<Context path="/chat" docBase="D:\workspace2\chat\WebRoot"  debug="0" reloadable="true"></Context>
																					

 

3.启动tomcat .访问 http://localhost:8080/chat 可以看到 聊天室的页面

  为了便于测试 我们需要开 两个 浏览器  分别 注册 聊天室 成员 然后 互相聊天 ,看看推模式是如何在两个页面上传送数据的

 

 

 

分享到:
评论
1 楼 ouyida3 2011-03-19  
为了解决同步问题,不应该使用vector,而应该使用同步后的arraylist

相关推荐

    推挽变换器在软开关与硬开关工作模式下的比较研究.doc

    推挽变换器在软开关与硬开关工作模式下的比较研究.doc推挽变换器在软开关与硬开关工作模式下的比较研究.doc推挽变换器在软开关与硬开关工作模式下的比较研究.doc

    论文研究-基于商业模式刚性的商业模式创新仿真——传统企业与互联网企业比较.pdf

    论文研究-基于商业模式刚性的商业模式创新仿真——传统企业与互联网企业比较.pdf, 在当前"互联网 "蓬勃发展、环境日趋动态的背景下,无论是传统企业还是互联网企业,...

    基于数据挖掘的个性化网页推送服务模式研究.pdf

    基于数据挖掘的个性化网页推送服务模式研究.pdf

    论文研究-一种推拉结合的生产计划与调度模型.pdf

    通过分析混合流程企业生产计划管理的实际需求特点,提出生产工艺流程图和一种推拉结合的生产计划与调度模型。模型以订单、库存和预投为综合需求起点,以拉式补货的方式制订有限产能的主生产计划,依据工艺流程图分解...

    推挽变换器在 软开关与硬开关 工作模式下的比较研究.doc

    推挽变换器在 软开关与硬开关 工作模式下的比较研究.doc推挽变换器在 软开关与硬开关 工作模式下的比较研究.doc推挽变换器在 软开关与硬开关 工作模式下的比较研究.doc

    煤矿瓦斯时间序列特性及模式研究进展

    矿井时间序列特性及模式辨识问题对于研究瓦斯异常预警至关重要,以时间序列理论为研究基础,总结出瓦斯时间序列自身所具有趋势性、周期性、类推性、相关性及异常性5种特性。基于前人在矿井瓦斯模式分析总结方面的研究...

    物联网的八种商业模式.doc

    具体可进一步细分为三种 子模式:运营商直接提供网络连接模式,运营商合作开发推广模式,运营商独立开发推 广模式。运营商直接提供网络连接模式是指由电信运营商向使用 M2M业务的企业客户直接提供通道服务,而不通过...

    基于.net平台下不同模式水晶报表的研究与实现

    基于.net平台下不同模式水晶报表的研究与实现 基于.net平台下不同模式水晶报表的研究与实现 基于.net平台下不同模式水晶报表的研究与实现 基于.net平台下不同模式水晶报表的研究与实现 基于.net平台下不同模式水晶...

    论文研究-基于云服务的物流园区服务资源共享与配置模式研究.pdf

    为解决物流园区物流资源要素分散和物流服务协同分配的问题,提出一种新的物流园区物流服务模式——云物流服务...相关研究探索了一条新的基于“推式策略”的物流服务实现路径,提供个性化和安全高效的多对多的物流服务。

    煤矿“一通三防”泛在学习模式的应用研究

    针对煤矿安全技术及法规的繁杂性,在泛在学习新常态下,从提高煤矿职工职业技能和专业素质角度,提出了煤矿"一通三防"泛在学习模式研究。对学习资源进行了网格划分,介绍了煤矿泛在网络结构,设计并研发了泛在学习推送...

    C#23种设计模式_示例源代码及PDF

    处理者有两个选择:承担责任或者把责任推给下家。一个请求可以 最终不被任何接收 端对象所接受。 14、COMMAND —俺有一个 MM 家里管得特别严,没法见面,只好借助于她弟弟在我们俩 、 之间传送信息,她对我有什么...

    基于云服务的物流园区服务资源共享与配置模式研究

    为解决物流园区物流资源要素分散和物流服务协同分配的问题,提出一种新的物流园区物流服务模式——云物流服务。...相关研究探索了一条新的基于"推式策略"的物流服务实现路径,提供个性化和安全高效的多对多的物流服务。

    基于WebSocket模式的混合移动应用消息推送研究.pdf

    随着移送互联网的快速发展,...当今移动互联网时代的智能终端对于推送功能更加地普及, 已经不再只是仅仅用在推送邮件了, 而更多地用在移动终端的APP中了。本文将围绕Hybrid App 的websocket消息推送进行一系列的探索.

    共享经济发展下高校运动资源的重新审视与共享模式研究

    共享经济发展下高校运动资源的重新审视与共享模式研究,马毅,李迟芳,共享篮球、共享健身房等共享经济新业态的出现让高校运动资源开发成为前沿问题。运用案例推衍、逻辑分析、文献资料等方法,跳出传

    华北含煤盆地构造分异与深部煤炭资源就位模式

    通过华北含煤区构造分异和煤层研究,系统地讨论了华北主要含煤区深部煤炭资源的就位模式,其主要就位模式包括:受逆冲推覆煤层变深的就位模式、受伸展煤层变深的就位模式、因复向斜煤层变深的就位模式、因坳陷煤层埋深...

    消息订阅模式之拉模式的实现平台 C#语言

    以前以为spring可以实现消息订阅模式,但是仔细研究后发现原来spring不是拉模式的,仍然是推模式的, 修改机制后必须得修改spring的配置文件,非常不爽! 于是这个简单小巧的拉模式平台出现了!用起来非常简单!只有两个...

    中国移动互联网盈利模式分析

    与方参与方式的视角进行研究,认为目前存在的移动互联网盈利模式主要有四种:移动运营 商门户网站模式;运营商自推“IM”业务模式;终端手机厂商开发软件进军移动互联网模 式和搜索引擎服务商开发手机终端模式。

    信息管理与信息系统论文选题.doc

    基于Web2.0的个性化信息服务模式研究 4. 试论竞争情报对企业竞争力的影响 5. 数据挖掘技术在竞争情报系统中的应用研究 6. 电子商务中的信息安全问题研究 7. 试论信息技术对企业组织模式的影响 8. 知识管理与企业...

Global site tag (gtag.js) - Google Analytics