站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题如何用servlet实现服务器推技术?(拜请各位大侠不吝赐教)

如何用servlet实现服务器推技术?(拜请各位大侠不吝赐教)

摘要: 如何用servlet实现服务器推技术?(拜请各位大侠不吝赐教)


常见servlet的使用为客户端发送请求,服务器端servlet恢复请求!

现有如下需求,当管理员欲重启服务器时向所有客户端发送消息通知各客户端用户“服务器即将重启,请保存数据”!

听说servlet的推技术可解决此问题,小弟才疏,望大侠赐教!


servlet我没有听说“推”技术。肯定都是Client主动连接Server的,不可能Server去主动连接Client,NAT就过不去。假如要实现你说的功能最简单的是Client定时去取数据库,可以使用JS中的XMLHttpRequest。


现在用的就是这种方法,效果不好。

请问能不能像聊天室那样子处理此问题?


能否第一次登陆的时候就发送一个请求,然后不断开。最后服务器调用呢?



只能客户端访问服务器


B/S下确实可以实现服务器推技术。
可以使用DWR框架来实现,DWR框架是用于Java的Ajax框架,它允许在客户端通过js方便的调用JavaBean。
现在发布的DWR2.0M2版中增加了服务器推信息和发送Javascript方法到客户端执行的能力,是采用comet的长连接技术。
用DWR2.0可以方便的实现楼主的需求,我们的项目已经在使用推技术了。
DWR官方网站:http://getahead.ltd.uk/dwr/
开发包下载:http://getahead.ltd.uk/dwr/download(其中dwr.war中包含了推模式的聊天室例子,可以参考)
推模式开发说明:http://getahead.ltd.uk/dwr/changelog/dwr20m1


嗯,确实不好.

比如说,

1.防火墙会在5分钟后结束掉长连接的问题怎么解决.

2.建立长连接都很消耗带宽.



楼上先了解下comet的原理再说。http://alex.dojotoolkit.org/?p=545
以下是使用comet的实例:
* GMail’s GTalk integration
* Jot Live
* Renkoo
* cgi:irc
* Meebo
包括google邮箱中的Gtalk也是使用此技术。


好的,试试.comet是建立在ajax上的吧?还是建立在servlet长连接上的?




嗯,comet官网做的不错,好象不错的感觉,呵呵.


↑返回目录
前一篇: 在线等!
后一篇: 大侠路过帮忙解答:EJB中EJBHome中的Create()方法调用过程