在Asp.net下实现变长连接的web即时应用的实现范例及ReverseAjax的演示介绍
更新时间:2011年12月22日 22:49:25 作者:
根据公司近期的一个培训整理的资料,附件包括一个完整的使用变长连接的web即时聊天室的范例和针对ReverseAjax的ppt培训文稿,其中ppt中包含了对范例程序的完整讲解
ReverseAjax 反转AJAX是一种旨在将逻辑控制权转移到服务端的Web实现模式
何谓控制权转移
传统的AJAX调用一般由客户端行为触发,比如说获取区域数据,异步验证等。
ReverseAjax将控制权转交给服务端,就像服务端触发客户端事件一样,即很早的Web推的技术。
ASP.NET实现变长连接需要使用到异步页面的技术,同时该页面需要禁用会话来实现每次请求都产生一个新的实例执行。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="response.aspx.cs" Inherits="_Default" Async="true" AsyncTimeout="30" EnableSessionState="False"%>
if (Request.Form.Count>0)
{
if (Request.Form["type"] == "loop")
{
ChatTask task = new ChatTask(this.Context);
task._chatNow = this.ChatNow;//有新的消息的回调方法,即为通知处理,这个时候释放掉连接
string user = Request.Form["user"].Trim();
PageAsyncTask async = new PageAsyncTask(new BeginEventHandler(task.OnBegin), new EndEventHandler(task.OnEnd), new EndEventHandler(task.OnTimeout), user);
Page.RegisterAsyncTask(async);
Page.ExecuteRegisteredAsyncTasks();//异步执行
}
}
具体代码和实现效果请参见范例。
附件:
范例程序: ReverseAjaxChat范例.rar
何谓控制权转移
传统的AJAX调用一般由客户端行为触发,比如说获取区域数据,异步验证等。
ReverseAjax将控制权转交给服务端,就像服务端触发客户端事件一样,即很早的Web推的技术。
ASP.NET实现变长连接需要使用到异步页面的技术,同时该页面需要禁用会话来实现每次请求都产生一个新的实例执行。
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="response.aspx.cs" Inherits="_Default" Async="true" AsyncTimeout="30" EnableSessionState="False"%>
if (Request.Form.Count>0)
{
if (Request.Form["type"] == "loop")
{
ChatTask task = new ChatTask(this.Context);
task._chatNow = this.ChatNow;//有新的消息的回调方法,即为通知处理,这个时候释放掉连接
string user = Request.Form["user"].Trim();
PageAsyncTask async = new PageAsyncTask(new BeginEventHandler(task.OnBegin), new EndEventHandler(task.OnEnd), new EndEventHandler(task.OnTimeout), user);
Page.RegisterAsyncTask(async);
Page.ExecuteRegisteredAsyncTasks();//异步执行
}
}
具体代码和实现效果请参见范例。
附件:
范例程序: ReverseAjaxChat范例.rar
您可能感兴趣的文章:
相关文章
asp.net+Ligerui实现grid导出Excel和Word的方法
这篇文章主要介绍了asp.net+Ligerui实现grid导出Excel和Word的方法,实例分析了asp.net结合jQuery的Ligerui插件操作excel和word文件的技巧,需要的朋友可以参考下2016-04-04.NET Core利用 AsyncLocal 实现共享变量的代码详解
在Web 应用程序中,我们经常会遇到这样的场景,如用户信息,租户信息本次的请求过程中都是固定的,我们希望是这种信息在本次请求内,一次赋值,到处使用。本文就来探讨一下,如何在.NET Core 下去利用AsyncLocal 实现全局共享变量2022-04-04ASP.NET MVC5网站开发之用户资料的修改和删除3(七)
这篇文章主要为大家详细介绍了ASP.NET MVC5网站开发之用户资料的修改和删除,感兴趣的小伙伴们可以参考一下2016-08-08ASP.NET Core使用Swagger/OpenAPI规范
这篇文章介绍了ASP.NET Core使用Swagger/OpenAPI规范的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-04-04
最新评论