您可能已经听说过 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
5 楼
sinianxue
2011-07-13
下载不了demo 点击进去是一个地图啊 可以发我一份吗 QQ751808566
6 楼
coolzhi
2011-07-18
sinianxue 写道
下载不了demo 点击进去是一个地图啊 可以发我一份吗 QQ751808566
已发,请注意查收!
7 楼
wywy021
2011-07-30
demo 发我一份,学习学习
QQ:282381879
QQ:282381879
8 楼
ddy0910
2011-09-14
能发下代码么?duchunyu0910@163.com 谢谢了
9 楼
rollean
2011-09-21

能发下代码么?谢谢!
xia10202000@yahoo.com.cn
10 楼
coolzhi
2011-09-22
rollean 写道

能发下代码么?谢谢!
xia10202000@yahoo.com.cn
已发,请查收!
11 楼
coolzhi
2011-09-22
ddy0910 写道
能发下代码么?duchunyu0910@163.com 谢谢了
已发,请查收!
12 楼
coolzhi
2011-09-22
wywy021 写道
demo 发我一份,学习学习
QQ:282381879
QQ:282381879
已发,请查收!
13 楼
luotao
2011-10-31
能发下代码吗?谢谢www.530308461@qq.com
14 楼
kingking0918
2011-10-31
demo 发我一份,谢谢了
QQ:378574264
QQ:378574264
15 楼
dnsnljw
2011-11-23
也发我一份吧!最近也研究这个东西!学习学习!谢谢!ittjljw@163.com
16 楼
eshen2002
2011-11-29
下载不了demo,麻烦lz也请发给我一份,最近也准备研究这方面,谢谢了。
eshen2002_1@yahoo.com.cn
eshen2002_1@yahoo.com.cn
17 楼
wsliupan
2012-01-03
请发我一份demo .谢谢, qq 563122478
18 楼
mengzhimin2011
2012-02-22
我也在学习反推技术,能发我一份代码吗?mengzhim@163.com.谢谢了
19 楼
smith789
2012-03-02
很感兴趣,能发一份吗?smith5623@126.com。非常感谢

20 楼
zqb666kkk
2012-03-23
访问demo进去怎么是 地图?
请发我一份的demo 6637152@qq.com 谢谢
请发我一份的demo 6637152@qq.com 谢谢
21 楼
angviza
2012-03-23
楼主也给我发一份好嘛^^,我的邮箱angviza@vip.qq.com,谢谢!
22 楼
baikh1612
2012-06-23
能把demo源码必下给吗?446415854@QQ.com
23 楼
月vs枫
2012-06-25
demo下载不了,能发一份到hetgyd@163.com吗?
24 楼
taozilong537
前天
taozilong537@163.com能发我份么