我现在在做一个B/S项目,有个模块就是服务器端有新变化,随即通知用户,时间要求挺严格的,从网上查了些资料,好像用Ajax轮询服务器,这样的话假设开了N多个客户端,发送了N多轮询服务器,是不是把服务器给搞垮了,不知道有没有更好的解决方案,想了解一下QQ聊天是怎么实现的,还有人人网的提醒也是用Ajax轮询服务器的么?
------解决方案--------------------------------------------------------
你查查Dwr推程序。
------解决方案--------------------------------------------------------
这其实就是一个B/S通讯 要写一个客户端的插件 来接收服务器端发来的消息。
------解决方案--------------------------------------------------------
这个没有真正实现过,但是在网上查过,如果想实现你要的效果现阶段好像有两个解决办法
一个实现起来简单,就是定时用ajax请求服务器有没有更新数据,这个方法实现简单,但是资源耗费比较大
第二个实现可能比较复杂,需要服务器端配合, 就是用http长连接,在server端挂住一个ajax请求,然后只有当有新数据是才返回,然后客户端处理之后重新发一个ajax让server挂住,实现好像比较复杂,我没有试过,在google上可以查一查comet server
Dwr 好像确实不错,支持Comet, Polling 可以看看
未来,在html5标准中会有WebSocket来实现客户和服务器的长连接,但是目前还为时尚早,浏览器厂商还没有真正的实现,也没有拳头级产品
------解决方案--------------------------------------------------------
spring 定时器 定时扫描数据库
------解决方案--------------------------------------------------------
感觉nodejs实现web即使通讯很不错!
------解决方案--------------------------------------------------------
pushlet 这个可以试下