`
8366
  • 浏览: 807059 次
  • 性别: 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

相关推荐

    NetMQ例子,多线程模式,推拉模式等

    NetMQ,全称为“.NET Messaging Queue”,是.NET平台...通过学习和研究这些示例代码,开发者可以更好地理解和应用NetMQ在多线程、推拉模式以及订阅模式下的具体用法,从而在实际项目中构建出高效的分布式通信解决方案。

    今日头条APP广告模式研究.pdf

    "今日头条APP广告模式研究" 根据提供的文件信息,我们可以总结出以下知识点: 1. 今日头条APP的发展现状:今日头条是一款具有引擎技术个性化推送的新闻资讯类APP,具有精准算法、数据分析、提供个性化服务的能力,...

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

    基于数据挖掘的个性化网页推送服务模式研究,探讨了利用数据挖掘技术改善用户通过网页获取信息的体验。在这个过程中,涉及到的关键技术和方法包括聚类分析、关联规则挖掘等。 数据挖掘是从大量数据中提取或“挖掘”...

    基于微信小程序的图书馆集群化智能服务模式研究.pdf

    为了解决这些问题,研究者提出了一种基于微信小程序的图书馆集群化智能服务模式。该模式通过微信小程序这一平台,将图书馆集群服务线上化,从而扩展了服务范围,提高了服务效率。在具体实现上,研究者构建了图书馆...

    基于SICAS消费者行为模型的社交电商模式及比较研究.pdf

    本文通过SICAS消费者行为模型这一新的研究视角,对社交电商的模式及其特性进行了深入的探讨与比较研究。 首先,SICAS模型是一个以用户为中心的消费行为分析框架,它包括五个阶段:感知(Sensing)、兴趣(Interest...

    基于互联网新平台的泛在学习模式研究与实践.pdf

    互联网新平台的泛在学习模式研究与实践,是当前信息技术与教育领域融合发展的热点话题。泛在学习(Ubiquitous Learning)或随时随地学习的模式,强调学习者可以在任何时间、任何地点、通过任何方式获取所需的知识和...

    高校图书馆参考咨询服务模式研究.1分享.pdf

    高校图书馆参考咨询服务模式研究 本文对高校图书馆参考咨询服务模式进行了详细的研究和分析,旨在探讨高校图书馆如何选择最适合的参考咨询服务模式。研究表明,高校图书馆的参考咨询服务模式多样,包括传统参考咨询...

    融媒体环境下互联网平台型企业现代治理模式研究.pdf

    研究者立足于平台型企业的角色定位,构建了企业自治机制、行政治理机制和市场治理机制,并与治理情境进行协同匹配,形成了现代治理模式。最后,提出基于不同治理层级和治理强度的多政策主体、多政策工具协同的政策...

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

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

    O2O电子商务模式的研究综述

    ### O2O电子商务模式的研究综述 #### 一、引言 随着信息技术和互联网的快速发展,电子商务迎来了蓬勃发展的新时代。O2O模式作为电子商务的重要组成部分,不仅推动了线上线下的深度融合,也为消费者提供了更加便捷、...

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

    ### 推挽变换器在软开关与硬开关工作模式下的比较研究 #### 1. 引言 在直流转换器(DC/DC)的设计中,根据输入电压和功率的需求不同,选择合适的拓扑结构至关重要。当面对较低输入电压(如单节蓄电池供电时的12V)...

    开关电源PWM的五种反馈控制模式研究

    峰值电流模式控制从70年代开始发展,主要用于单端和推挽电路。它引入了原边电流保护,并且通过检测峰值电流来控制开关器件,从而实现快速的动态响应。这种方式的反馈不仅考虑电压,还考虑了电流,提高了系统的稳定性...

    基于雨课堂的中职混合教学模式研究

    【基于雨课堂的中职混合教学模式研究】探讨的是如何运用现代信息技术,特别是雨课堂这一智慧教学软件,来改进中职教育的混合式教学模式,从而提升学生的学习效率。混合教学模式结合了线上和线下教学的优点,试图克服...

    深度学习视域下的混合教学模式研究.pdf

    集美大学学报2021年第3期发表的《深度学习视域下的混合教学模式研究》一文,深入探讨了以深度学习为旨向的混合教学模式的构建与实施。 文中提到,高校在学习科学理论的指导下,不断探索适合当前教育需求的教学方法...

Global site tag (gtag.js) - Google Analytics