`

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

阅读更多

转载自:  

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

http://www.ibm.com/developerworks/cn/web/wa-lo-comet/

 

--------------------------------------------------------------------------

 

到这里,我们可以考虑来写一个简单的聊天室了。这个页面布局非常简单,上面的一个div我们用来放聊天的内容,比如某某某说你好等等,下面有一个输入框一个按钮,用来说话。服务器端也好处理,弄个PHP显示聊天列表,弄个PHP用来接收聊天信息写到数据库中。这样一个简单的聊天室模型就出来了,但是还有让人最头痛的事,那就是如何实时的显示聊天内容呢?

win32socket编程中,比如QQ,我们可以用阻塞的方式等待消息的到来,但是在web编程就没这么简单了,你想到什么解决办法?我比较笨,只想到了AJAX

写一个简单的JavaScript函数,用来异步获取聊天的内容,然后再写个setTimeout方法,调用刚才的AJAX请求,就设置为1秒请求一次。

这种方法虽然简单,但是不但客户端负荷大服务器的负荷也不小,再想想还有什么方法呢?

这种情况下“服务器推”这种技术就非常有用了,看完上面的介绍,相信你已经从字面上可以理解“服务器推”了,这个词叫的非常形象,服务器主动的发出内容,而不需要客户端的请求。

但是对于我们B/S结构,浏览器不发出个请求服务器是不会知道它的存在的,这样又会陷入到一个漩涡中,既然这样我们如何利用“服务器推”呢?

看下题目,我们的解决方法就是建立一个Http长连接。Http长连接有点C/S结构的意思,类似你玩的网游,这种结构的东西都是长时间连接的。有多种方法可以实现,下面我简单介绍两种。

基于 AJAX 的长轮询(long-polling)方式

基于 Iframe htmlfile 的流(streaming)方式

略。。。  请看原文

分享到:
评论
4 楼 leo_soul 2010-09-09  
long polling
和 stream这两种方式你实现过没?
我最近以最简单的方式实现了。不过感觉特别别扭。如果考虑到servlet的多线程,以及数据产生源与servlet之间push的多线程,还有不同b端用户订阅/发送的问题,感觉非常难办。。尤其是多线程,网上有说有的web容器采用nio的方式可以提高并发量。但这样做就无法移植了,只能针对某web容器。
还有,关于事件通知的方法,数据产生源如何通知push部分开始push?我试过2种方式,想了3种方式,根据不同的要求使用不同的通知机制。

具体实现push不知有何好办法?或者贴个简单实现上来研究研究?
3 楼 elf8848 2010-08-29  
leo_soul 写道
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
文章原著是这个。

已经修改了,谢谢
2 楼 leo_soul 2010-08-26  
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
文章原著是这个。
1 楼 Xorcerer 2009-04-30  
突然想起小时候,Windows98时代的聊天室,它们貌似就是不断刷新页面的吧?

相关推荐

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

    NULL 博文链接:https://justcoding.iteye.com/blog/1497445

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

    【Comet技术详解:HTTP长连接的服务器推送】 在软件开发领域,尤其是在Web应用程序的设计中,"服务器推"技术已经成为解决实时数据传输需求的关键。传统的Web系统采用客户端发起请求、服务器响应的方式工作,但这并...

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

    ### Comet:基于_HTTP_长连接的“服务器推”技术 #### 概述 Comet是一种新兴的技术,它允许服务器向客户端推送数据,而非传统的客户端定时请求数据的方式。这种技术特别适用于那些需要实时更新数据的应用场景,...

    CSharp HTTP长连接(Comet)

    在IT行业中,HTTP长连接(也称为Comet技术)是一种用于实现服务器向客户端实时推送数据的方法,常用于构建实时交互的应用,如聊天室、股票报价、在线游戏等。C#作为.NET框架的主要编程语言,提供了丰富的工具和技术...

    CometAsync_net:C#实现基于http长连接“服务器推”-Comet技术

    C#实现基于http长连接“服务器推”-Comet技术 很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。 本项目基于 AJAX 的长轮询方式实现。 ...

    Java 实现 Comet 长连接,服务器主动发送消息给客户端

    Java 实现 Comet 长连接,服务器主动发送消息给客户端是一项关键的技术,它在实时通信、推送服务等领域有着广泛的应用。Comet 是一种基于 HTTP 的持久化连接技术,允许服务器在客户端保持一个打开的 HTTP 连接,直到...

    Tomcat comet 服务器推技术

    Tomcat 的 Comet 技术是一种基于 HTTP 长连接的服务器推送技术,允许服务器在客户端保持一个开放的 HTTP 连接,从而能够在数据准备好时立即推送到客户端,而无需客户端发起新的请求。这种技术在实时性要求高的场景,...

    comet demo 向客户端推送例子

    Comet技术是一种基于HTTP长连接的反向Ajax技术,它允许服务器向客户端浏览器主动推送数据,从而实现双向通信。在Web应用中,通常的HTTP请求是客户端发起的,而Comet打破了这种模式,使得服务器可以在适当的时候主动...

    基于comet服务器推技术思路的Pushlet技术实现1

    总结起来,基于Comet的Pushlet技术通过长轮询和流方式实现了高效的服务器向客户端的数据推送,有效地解决了Web实时通信的问题,尤其适用于需要实时交互的场景。无论是长轮询还是流方式,都利用了HTTP连接的持久性,...

    comet4j 自己写的消息推送 觉得实用

    Comet4j 是一个开源的 Java 框架,用于实现实时的、双向的、基于 HTTP 长连接的消息推送服务,它解决了传统 HTTP 请求响应模式下难以实现服务器主动向客户端推送信息的问题。 在 Web 应用中,消息推送技术是必不可...

    服务器推送技术之comet4j资源包

    Comet技术是一种HTTP持久连接技术,它通过长时间保持HTTP连接来实现实时通信,使得服务器能够随时向浏览器推送数据。Comet4j框架正是基于这种技术,为Java开发者提供了一套简单易用的API,以处理服务器与客户端之间...

    php 长连接服务器端

    总之,PHP长连接服务器端是实现Web即时通讯的重要技术手段,通过Comet或WebSocket等技术,可以创建高效、实时的通讯系统。在实际开发中,需要综合考虑性能、安全、兼容性等多个方面,才能构建出稳定、易用的解决方案...

    web推送 comet技术

    Comet技术是一种基于HTTP长连接的Web实时通信技术,它允许服务器向客户端主动推送数据,而无需客户端发起新的请求。这种技术打破了传统的HTTP请求-响应模型,极大地提升了Web应用的实时性和交互性,尤其适用于股票...

    comet4j服务器推可运行DEMO

    Comet4j是一款基于Java平台的服务器推送技术框架,它主要设计用于实现实时的、双向的通信,使得服务器能够主动向客户端推送数据,而不仅仅局限于传统的HTTP请求响应模式。在Web开发中,这种技术可以极大地提升用户...

    服务器推comet4j

    为了解决这个问题,Comet技术应运而生,它通过长时间保持HTTP连接来实现服务器主动推送数据到客户端。 Comet4j是一个开源的Java库,专门用于实现服务器推功能。它提供了高效的、跨平台的服务器推解决方案,允许...

    基于Comet推送技术的实时图形控件

    综上所述,基于Comet推送技术的asp.net实时图形控件是现代Web应用中的一个重要组成部分,它结合了服务器推送的优势和动态图形的可视化效果,为用户提供了一种直观且实时的数据展示方式。在实际开发中,开发者需要...

Global site tag (gtag.js) - Google Analytics