基于ASPNET的comet简单实现.docx

基于ASPNET的comet简单实现.docx

ID:59211974

大小:69.60 KB

页数:2页

时间:2020-09-10

基于ASPNET的comet简单实现.docx_第1页
基于ASPNET的comet简单实现.docx_第2页
资源描述:

《基于ASPNET的comet简单实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于ASP.NET的comet简单实现通过简单的“jQuery+两个类”来实现一个简单的comet模型。效果图如下:一、概念解释这个Comet概念:“像彗星那样拖着长长的尾巴的http长连接”。事实上大家都知道,http是不可以与服务器持久连接的,要是每个请求都与服务器持久连接的话,那服务器早就宕掉了,就像前段时间像博客园连接数超过2000就出来了ServiceUnavailable一样。。就像网上的解释:step1.向服务器发出请求step2.服务器端查看是否有数据step3.如果有数据,则向客户端发送数据,结束该请求,返回Step1step4.如果没有数据,等待,

2、直到有数据出现,进入step3通过以上几步可以看出,客户端与服务器是始终维持着一个连接的,这样看起来,就像客户端与服务器端始终有一个没有关闭的连接一样。也就是他们说的"HTTP长连接". 二、基于ASP.NET和jQuery的Comet实现其实jQuery只是一个手段,这里用到它的Ajax部分,用于向服务器端发送请求。在我的源码中,就是用于负责向服务器端发送两个请求:1、发送数据 2、发送等待请求(当服务器有数据时该请求会返回后再次发送)至于服务器端,如何实现判断服务器有数据便返回,没有数据便等待的功能呢?Google一下,可以知道ASP.NET实现异步处理的话,实现

3、IHttpAsyncHandler接口就可以了。该接口的BeginProcessRequest(HttpContextcontext,AsyncCallbackcb,objectextraData)方法返回一个IAsyncResult对象。当不调用其参数cb的回调函数时,该请求不会结束。故我们可以在该方法中做一下文章,用一个单例模式实现的消息处理类Messages将所有请求的IAsyncResult对象保存起来,这样便可以知道有多少个客户端发送了请求,同时也可以遍历所有的IAsyncResult对象,实现向其客户端主动发送数据的功能。上面说了,jQuery会发送两个请

4、求,第二个就是一个“等待请求”,当服务器端主动发送了数据到客户端时,该请求便能够收到服务器发送的数据。这样便完成了一次服务器向客户端主动发送数据。再次建立等待请求,重复循环,实现“长连接”。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。