您可能已经听说过 Comet,因为它最近受到了一定的关注。Comet有时也称反向 Ajax或服务器端推技术(server-side push)。其思想很简单:将数据直接从服务器推到浏览器,而不必等到浏览器请求数据。听起来简单,但是如果熟悉Web应用程序,尤其是HTTP协议,那么您就会知道,这绝不简单。实现Comet风格的Web应用程序,同时保证在浏览器和服务器上的可伸缩性,这只是在最近几年才成为可能。目前一些主流网站都有类似的原理,例如:webQQ、开心网、白社会等等,它们中消息动态都是采用类似的技术,也许具体实现方式不一样;
作为一个技术人员,当你开始了解comet,都会或多或少有些兴奋,内心也会有蠢蠢欲试的冲动,再加上现在webQQ,baidu hi等网页聊天忽如一夜春风来,开得满网络都是,成了IT老大们下一个争夺的阵地。最近我和我的一个朋友也牛刀小试,用dwr的comet技术实现了简单在线聊天,当然我们不是为了争什么,只是为了满足作为技术人员的最原始的追求而已。不过其实它也简单,无非就是获取访问网站的用户列表,然后实现在线聊天就可以了。
先说说获取在线用户列表,当用户访问某页面时,onload事件,调用dwr反推到后台,后台先,新建一个用户信息,然后装进用户在线列表数组里(onlineUsers)。然后把onlineUsers当参数,反推到各个页面,让界面执行js,重新根据onlineUsers数组,生成在线列表;当用户关闭时,调用dwr反推,让它反推到各个在线用户页面后,执行删除该用户在信息。
然后说一下在线聊天,选中在线列表的人员,点击发起对话,调用dwr反推,去寻找与该用户信息匹配的会话,然后通过服务器反推执行代码到该用户页面,让页面执行对话信息的生成。当第一次连接建立后,dwr会记下双方的的信息(相当于一个访问地址),确立双方的关系后就能继续通话了,另外一个人也是这样处理。
效果,大家可以访问
DEMO,如果线上没有用户,你可以同时打开两个IE自个玩,或者把链接发给朋友,跟他们聊聊;如果线上已有用户,那你就可以直接跟她聊了,呵呵!
这个DEMO,得感谢我们团队的小冯,正是在他的努力下,这个DEMO才得以顺利完成,他的QQ是: 158948314,如果需要交流,大家可以直接加他,验证信息:javaeye
分享到:
相关推荐
使用spring 整合dwr的反推技术,可以运用于在线聊天的实现。
通过 dwr 反推技术 实现 web 聊天 无刷新 跟新技术
dwr反推简单例子,自己写的有的地方自己都没看明白!
网络上Spring整合DWR comet 实现无刷新、多人聊天室 的代码整理,包含jar包,eclipse工程,直接导入即可运行。
DWR2.x的推技术也叫DWR Reverse Ajax(逆向Ajax)主要是在BS架构中,从服务器端向多个浏览器主动推数据的一种技术。
spring整合dwr 完成无刷新的ajax聊天室功能 利用comet技术
DWR框架推模式实现的聊天室DWR框架推模式实现的聊天室DWR框架推模式实现的聊天室
NULL 博文链接:https://happysoul.iteye.com/blog/1313069
使用dwr的comet技术来实现无刷新的多人聊天室。让服务端监听发送消息事件,通过scriptsession来获取所有的访问者。在像访问者中推送信息。
通过服务器反推使用DWR框架实现即时聊天系统,资源包内包含JavaBean源文件、DWR配置、聊天页面代码、web配置文件代码、javascript代码
利用DWR实现文件上传进度条 利用DWR实现文件上传进度条 利用DWR实现文件上传进度条
dwr的comet技术实现即时通讯的DEMO
DWR学习资料 :DWR 3.0 上传文件.txt DWR3.0反向Ajax示例.txt DWR3.0...多人聊天室.doc 反向Ajax技术实例.txt 基于DWR反向AJAX的Web监控系统.doc 深入学习DWR3.0.txt 实战dwr.doc 使用Jetty和DWR创建伸缩性Comet程序.txt
开发平台myeclipse,mysql,tomcat。前端Extjs 使用Extjs开发的一个在线聊天工具,用DWR反推实现!
实现Comet消息推送功能,根据登陆人定向推送,解决刷新页面原有ScriptSession不能及时销毁的问题,DEMO比较简陋,请先进入login.jsp页面登陆。根据登陆名称判断推送目标,可登陆多个用户进行测试。
使用 DWR+Spring 实现服务器推送的 网页聊天程序
使用dwr实现服务器端反推的例子,主要争对点对点聊天模式
包含了dwr推送技术的详细介绍 和 一个基于dwr推送技术的聊天实例
DWR框架的实现DWR框架的实现DWR框架的实现DWR框架的实现DWR框架的实现
使用dwr推技术实现站内聊天的demo。