欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

辛星浅析php中coment技术的实现

程序员文章站 2024-02-05 22:34:06
...
第一,何谓推送技术

随着人们对web越来越熟悉,人们希望web应用可以像本地应用一样可以实时的接收消息,于是也就有了所谓的"推送技术"。也就是我们所说的Server Push,也就是"服务器推技术",它的典型范例就是聊天、消息提醒、交友网站中使用比较频繁,成为实时应用中的一个热点问题。

第二,传统实现(拉取技术)

有一个很类似的实现机制,也就是传统的ajax,它是每隔一段时间去服务端拉取一次信息,但是这种方式会特别消耗资源。它需要时时刻刻去问服务器是否可以请求到数据,而且实时性很差,因为我们通常是过一段时间去请求一次数据的。

第三,另一种实现(推送技术)

显然使用定时拉取的方式是可以的,但是它会特别消耗服务器资源,因此我们需要另一种实现方式,它就是我们所说的推送技术,其实它只是看上去有点像推送技术,它在实质上仍然是一次拉取,只是这次拉取的时间变得很长很长,服务器端可以不断的吐出东西来。

下面是三种常见的实现技术:

(1)ajax长轮询。所谓ajax长轮询,它的本质仍然是一次拉取,它也是一种很不错的push实现方式,它会那种ajax短轮询会减少很多不必要的请求,因此它不论在开销还是在实时性上,都更好一些。它的实现机制是客户端发起一个ajax请求,服务端将请求搁置起来,直到到了超时时间或者说有了数据后返回,而客户端则等待ajax返回后处理数据,然后发起下一个ajax请求。

(2)使用frame长连接。对于框架下的长连接,最大的一个问题就是如果框架在载入,那么浏览器就好像一直显示"载入中",处理问题上不如不适用frame方便。

(3)使用flash或者html5 websocket,不过这两种的支持均不是特别特别靠谱,因为总是面临用户的浏览器不支持的情况,此时我们应该回退到更加兼容和大众的技术上去实现。

(4)使用经典框架,其实我们需要遇到的问题,早就有很多人已经遇到并且解决了,我们首先需要知道的是他们是如何解决这些问题的,然后我们才能提出更优秀的解决方案。

最后,附上ibm的一篇文章,传送门:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/


版权声明:本文为博主原创文章,未经博主允许不得转载。