`
17studio
  • 浏览: 199294 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

近期关于comet的一些简单总结

阅读更多
一直关注的comet已经陆续出现了很多解决方案,自己也收集了一些资料,对其中的一些问题进行了思考,特做一个简单的总结。

1、comet的价值

早期的comet,仅仅考虑的是解决客户端不断轮询带来的压力问题,逐渐发展到今天,各类的网站,开始考虑为众多用户提供同时在线的互动服务,所以今天的comet方案逐渐开始以下面几个目标来衡量其价值:
  a、同时连接数
  b、处理能力
一些早期的方案,往往几百人同时在线就已经无法负荷,实际上没有多少应用需要处理同时几百人在线互动(注意:这里说的是实时性在线互动,比如MMORPG里面一次城战这样的,IM的世界频道广播这类并不算),所以上述问题可以通过增加机器来解决(把同步问题压到后端的数据同步,前端计算压力通过web服务器的分布来解决)

不过随着技术和产品的发展,更好的性能指标总是会提出来的,下面就谈谈一些更好的选择方案。

2、comet的方案

可以说各种主流语言和各种web server都有,因本人能力有限,涉及到的信息较少,达人们请多多指教。
   a、c/c++有nginx_http_push_module, ape-project,这些都是号称5~10w同时在线的solution,这下子用脚本语言的同学们有福了
   b、java因为其主流的影响力,相信解决方案是最有市场需求的,java的包括有:atmosphere--号称通用的解决方案,可惜只有0.4版本,dwr+jetty,成熟可用,商业应用应该没有问题,cometd,也是jetty basic的方案,1.0rc,tomcat/resin这类只有基础api支持,比较原始,还有一个pushlet,可惜性能不行(后面会谈谈pushlet的解决方案)
   c、iis的htpmodule,是使用long polling的方式来解决的,long polling也可以算是解决方案之一,我看到的是http://www.codeproject.com/KB/aspnet/CometAsync.aspx
   d、有不少方案是基于mailbox的消息存储方式(比如lighttpd的构思)
   e、要提一下erlang的mochiweb,看过一些基于mochiweb的解决方案,long polling的

3、comet的生命力,来自websocket的挑战

个人窃以为,websocket的发展速度,肯定要比comet快(从来商业行为的速度都比技术行为要来的快),前端问题一旦解决,后端许多成熟的socket服务器就等着冒头了,从这个角度考虑,comet可能也就这几年的命……或许不值得投入太多资源去做技术研发

注:经过一段时间的思考,发现在国内因为盗版的原因,IE6占据了国内浏览器过半的使用率,导致comet的应用无法升级为websocket,取代方案只能考虑flash

分享到:
评论

相关推荐

    comet技术研究总结

    - **WebSocket**:为了解决Comet的一些局限,WebSocket应运而生,它提供了一种全双工、低延迟的通信机制,更适合构建实时Web应用。 - **Server-Sent Events (SSE)**:另一种轻量级的单向推送技术,适合简单的实时...

    配置tomcat支持comet

    总结起来,配置Tomcat支持Comet涉及修改`server.xml`,启用APR库,配置Executor线程池,以及创建处理Comet请求的Servlet。通过这种方式,我们可以实现服务器主动向客户端推送数据,满足实时性较高的应用场景。

    java comet服务器推送使用步骤

    Java Comet框架为开发者提供了一种简单而有效的方式来实现这一功能。本文将详细介绍如何使用Comet4J框架来实现Java Comet服务器推送。 #### 二、Comet4J简介 Comet4J是一个基于Java的轻量级Comet框架,它能够帮助...

    基于comet4j的简易聊天

    本项目"基于Comet4j的简易聊天"旨在通过Comet4j框架创建一个简单的聊天应用,让用户可以实现实时的消息传递。 在描述中,我们看到"基于Comet4j的简易聊天",这表明项目的核心是利用Comet4j的长轮询或HTTP流特性来...

    comet4j

    这个文件很可能是Comet4J的一个示例应用或者演示项目,包含了一些基础的代码示例,展示如何使用Comet4J库来创建一个简单的服务器推送功能。通过分析这个示例,我们可以了解到如何集成Comet4J到自己的项目中,如何...

    comet4j库文件

    然而,由于Comet技术本身的一些限制,比如可能会占用大量服务器资源和可能导致浏览器兼容性问题,所以在选择Comet4j之前,开发者需要权衡这些因素。 总结来说,Comet4j是一个用于实现实时Web通信的Java库,包括了...

    comet初级入门指南

    总结来说,"Comet初级入门指南"是一个针对初学者的教程,涵盖了Comet技术的基础知识、实现方式、实例代码以及相关的开发工具。通过阅读和理解提供的源码和脚本,读者可以更深入地理解Comet的工作机制,并具备初步的...

    使用nodejs搭建最简单的comet原型实用.pdf

    【使用Node.js搭建最简单的Comet原型】 Comet是一种基于HTTP长连接的“服务器推”技术,它通过保持客户端与服务器之间的持久连接,允许服务器主动向客户端推送数据,从而实现实时交互。相比于传统的请求-响应模型,...

    DWR+JAVA进行web消息推送dwr-comet.zip

    总结来说,DWR与Java结合的Web消息推送方案利用了Comet技术,提供了实时、双向的通信能力。通过在后端处理数据推送和前端与服务器的交互,可以构建出高性能、低延迟的实时Web应用。开发者在实际应用中,需根据项目...

    Comet:基于 HTTP 长连接的“服务器推”技术 (实例)

    这是最简单的实现方式,但效率较低,因为大部分请求可能都返回空数据。 4. **Long Polling**(长轮询):与普通轮询不同,长轮询会保持请求开放,直到服务器有新数据或连接超时。这种方式比普通轮询更高效,因为它...

    Comet link

    总结起来,"Comet link"涉及的核心知识点是 Comet 技术,它是实现服务器向客户端实时推送数据的一种方法,通过长连接和多种策略来实现。通过博文链接,读者可以深入学习 Comet 的原理、实现方式以及在实际开发中的...

    comet4j需要的jar与js

    Comet4j是一个Java库,专门用于实现 ...总结,Comet4j为Java开发者提供了一种简单易用的实现Comet技术的途径,通过合理的配置和使用,可以构建出高效的实时Web应用。正确理解并应用jar包和js文件是成功集成的关键。

    comet-ajax.rar

    Comet技术与Ajax技术在Web开发中的应用 Comet技术和Ajax技术都是Web应用程序中实现实时交互的重要手段,它们改变了传统的HTTP请求-响应模式,提升了Web应用的用户体验。在这篇文章中,我们将深入探讨这两种技术,...

    Comet服务器推送技术

    总结来说,Comet服务器推送技术是Web开发中实现服务器主动推送数据的一种解决方案,它通过保持持久连接来克服HTTP协议的限制,从而实现实时性更强的交互体验。尽管有多种实现方式,每种都有其优缺点,但Comet及其...

    使用nodejs打造comet系统

    - Jsonp-Polling利用JSONP机制实现跨域数据请求,适用于简单的数据交互场景。 5. **兼容性与跨域问题**: - 需要考虑不同浏览器的支持情况,确保兼容性。 - 跨域问题可以通过设置`Access-Control-Allow-Origin`...

    Comet:基于_HTTP_长连接的“服务器推”技术

    在探讨Comet之前,我们先来了解一些常见的“服务器推”方案,并对它们进行简单的对比。 1. **基于插件的方法**: - **Flash XMLSocket**:利用Flash提供的XMLSocket类实现客户端与服务器之间的双向通信。优点是...

    dwr comet 使用示例,使用spring作为后台的管理容器

    DWR支持自动类型转换,使得Java和JavaScript之间的数据交互变得简单。 **2. Comet 技术** Comet是一种持久连接技术,它打破了传统的HTTP请求-响应模型,允许服务器在客户端保持一个长时间的连接,从而能在需要时...

    Comet:基于HTTP长连接的“服务器推”技术[收集].pdf

    总结来说,Comet技术通过HTTP长连接实现了服务器到客户端的数据实时推送,克服了传统Web模型的局限性,为实时Web应用提供了新的解决方案。尽管存在一些挑战,但随着技术的发展,这些问题正在逐步得到解决,Comet在...

    JavaScript数据推送Comet技术详解_.docx

    总结起来,JavaScript数据推送技术,特别是Comet,提供了实现高效、实时Web应用的方法。通过HTTP长连接,服务器可以主动推送数据,从而提高用户体验。随着WebSocket和SSE的出现,开发者现在有更多的选择来构建实时...

Global site tag (gtag.js) - Google Analytics