档案

Archive for 2010年3月

服务器端的推技术

2010年03月30日 1条评论

      顾名思义,就是说服务器在需要的时候将信息推向客户端。目前对于需要频繁更新信息的地方,绝大部分还是依靠客户端不断地轮询服务器以便检查有没有更新的信息。例如间隔一定时间刷新一下页面,或者Ajax用定时器不断读取服务器上的信息。对于需要频繁更新信息的应用,不断的轮询是必要的,而且轮询的时间间隔也比较重要,间隔太短就造成产生大量的Request,太长的话又不能保证及时地更新信息。

      今天我在思考我的山寨版流程系统,就在想这个问题,如果某个人完成了一个任务,那自然下一个人那儿就产生一个新的任务,那那个人如何在任务一产生的时候就得到通知呢。轮询确实是一种简单的方法,但是用的人一多,每个人都不断地向服务器发送请求,必然会造成服务器负荷过重。最好的方法就是由服务器来通知客户端,一旦任务产生告知客户端,这其实也是比较符合人类世界的情况,客户端是“被告知”的,吼吼……

      Tomcat 已经可以通过非阻塞I/O支持Comet技术了,Jetty其实也有相应的技术,只不多可能要等到Servlet 3.0规范真正出来的时候大家才会统一起来。今天大肆Google了一下,没想到期间被GFW了好多次,我狂吐血,搜索学术性的东西都要被墙,无语……,只要拿出尘封已久的翻墙工具,开始继续我的翻墙生涯。搜索期间发现Google Chrome已经实现了WebSocket,其实FireFox之前就有了,只是一直没有正式放出来,看来Google还是用于创新的。

      在浏览器统治的今天,服务器的推技术应该是未来的发展方向,B/S与C/S的界限也越来越模糊了。

分类:未分类