长轮询和Comet

本文探讨了长轮询与Comet两种技术的区别及其应用场景。长轮询适用于实时性要求不高的场景,如微博更新提醒;而Comet则更适合实时性要求较高的应用,例如聊天室等。此外,还介绍了HTML5中的SSE技术作为另一种服务器推送方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


长轮询方式是由前端定时发起AJAX请求,若请求到数据则把数据显示出来。
comet方式是由客户端与服务器端发起一个长连接,然后客户端通过监听事件的方式,来对服务器端返回的数据作出响应和处理。
实时性要求不高使用长轮询,比如微博;实时性要求较高使用comet,比如聊天室。


用firebug调试一下weibo.com的网络请求可以发现,微博用的是轮询来实现消息提醒的,应该是用set timer隔个30秒或一分钟去服务器进行查询。和即时通信的web应用不同,微博提醒实时性要求不高,所以用轮询方式比较合理,没有必要用长连接。

没错,不是非要使用长连接的。长连接对象保存在服务器,要占用一定的内存。降低了服务器的并发。
除非实时性要求非常高的应用。例如WEB IM,否则不需要长连接。


如果你的需求是要求服务器推送,而且不用考虑浏览器兼容性,并且客户浏览器支持HTML5中的SSE,Server-sent-event,也就是“服务器发送事件”的话,也可以考虑采用他,制作起来比Comet要简单很多,效果也要好很多
MDN上有一篇介绍SSE的文章  https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events


Comet软件  http://www.oschina.net/search?scope=project&q=Comet

《实战 Comet 应用程序开发》  http://www.ibm.com/developerworks/cn/web/wa-lo-w2fpak-comet/

《Comet:基于 HTTP 长连接的“服务器推”技术》  http://www.ibm.com/developerworks/cn/web/wa-lo-comet/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值