网站消息推送介绍

来源:互联网 发布:拆棋软件 编辑:程序博客网 时间:2024/06/05 05:34

最近呢,想写个商品网站,添加了,商品推荐功能和站内搜索功能,还想添加消息推送功能~~~

但是呢,以前从来没用接触过网站消息推送,看到过QQ新闻推送,一些网站都有此功能,所以就想实现一个,不求太复杂~~~

于是呢,各种百度,各种google~~~~这篇博文只给大家介绍一下,各种实现消息推送的方案~~~至于实现,在下一篇博文中给出~~

那么无论好坏,实现服务器消息推送功能的方案都有哪些呢?

                 服务器推送(Server Push)技术的主要思想是在没有客户端请求的情况下,服务器端主动地发送数据到客户端(即浏览器)并显示给用户(S/C 模式),是一种先进的服务器端和客户端之间通信方式。

一,一般人想到的是让客户端不停的向服务器请求访问,比如说一分钟请求一次,服务器盲目的向请求的客户端推送消息~~该方案,好坏先不说,也不失为一种解决方法!

 

二,其次,是基于Http的长连接技术,当客户端与服务器连接上了,就一直保持链接,这样服务器也就可以随时向客户端发送消息了!!消耗是大了点,但是也是一种方法

 

三,基于Ajax的长轮询。一般最原始的作法就是在客户端搞个定时器一直向后台请求,而ajax的长轮询与一般的http连接不一样,它发送的是长连接,比如说你发过去一个连接,它并不急于给你返回过来请求,而是等到后台有动作的时候才有相应,这样就减少了客户端的压力。

 

四,利用开源框架comet。Comet是一种用于web的推送技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,ajax长轮询和iframe流。

 

五,随着comet的不断发展,各种开源框架不断涌现,pushlet就是一种成熟的开源框架~~~~Pushlet是一种comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Java applet或者插件的帮助。它使server端可以周期性地更新client的web页面,这与传统的request/response方式相悖。浏览器client为兼容JavaScript1.4版本以上的浏览器(如Internet Explorer、FireFox),并使用JavaScript/Dynamic HTML特性。而底层实现使用一个servlet通过Http连接到JavaScript所在的浏览器,并将数据推送到后者。

 

其实,这五种方式有重复的地方,归根到底无非是两种形式:http长连接和轮询(无论是长轮询,还是短轮训)~~~~

这几种方式呢,各有优缺点,我用的是pushlet开源框架~~稍后,会为大家讲解pushlet相关并给大家一个我实现的一个完整例子!!!

 

 

 

 

 

原创粉丝点击