在Asp.net下實現(xiàn)變長連接的web即時應用的實現(xiàn)范例及ReverseAjax的演示介紹
更新時間:2011年12月22日 22:49:25 作者:
根據(jù)公司近期的一個培訓整理的資料,附件包括一個完整的使用變長連接的web即時聊天室的范例和針對ReverseAjax的ppt培訓文稿,其中ppt中包含了對范例程序的完整講解
ReverseAjax 反轉(zhuǎn)AJAX是一種旨在將邏輯控制權(quán)轉(zhuǎn)移到服務端的Web實現(xiàn)模式
何謂控制權(quán)轉(zhuǎn)移
傳統(tǒng)的AJAX調(diào)用一般由客戶端行為觸發(fā),比如說獲取區(qū)域數(shù)據(jù),異步驗證等。
ReverseAjax將控制權(quán)轉(zhuǎn)交給服務端,就像服務端觸發(fā)客戶端事件一樣,即很早的Web推的技術(shù)。
ASP.NET實現(xiàn)變長連接需要使用到異步頁面的技術(shù),同時該頁面需要禁用會話來實現(xiàn)每次請求都產(chǎn)生一個新的實例執(zhí)行。
<%@ 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;//有新的消息的回調(diào)方法,即為通知處理,這個時候釋放掉連接
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();//異步執(zhí)行
}
}
具體代碼和實現(xiàn)效果請參見范例。
附件:
范例程序: ReverseAjaxChat范例.rar
何謂控制權(quán)轉(zhuǎn)移
傳統(tǒng)的AJAX調(diào)用一般由客戶端行為觸發(fā),比如說獲取區(qū)域數(shù)據(jù),異步驗證等。
ReverseAjax將控制權(quán)轉(zhuǎn)交給服務端,就像服務端觸發(fā)客戶端事件一樣,即很早的Web推的技術(shù)。
ASP.NET實現(xiàn)變長連接需要使用到異步頁面的技術(shù),同時該頁面需要禁用會話來實現(xiàn)每次請求都產(chǎn)生一個新的實例執(zhí)行。
復制代碼 代碼如下:
<%@ 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;//有新的消息的回調(diào)方法,即為通知處理,這個時候釋放掉連接
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();//異步執(zhí)行
}
}
具體代碼和實現(xiàn)效果請參見范例。
附件:
范例程序: ReverseAjaxChat范例.rar
您可能感興趣的文章:
相關(guān)文章
在ASP.NET Core5.0中訪問HttpContext的方法步驟
這篇文章主要介紹了在ASP.NET Core5.0中訪問HttpContext的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
asp.net 簡易生成注冊碼(數(shù)字+大小寫字母)
注釋寫的很詳細,不做過多的描述了,希望能給初學者帶來一些幫助,同時也是自己知識的一個積累過程。2008-11-11
在Code First模式中自動創(chuàng)建Entity模型
這篇文章介紹了在Code First模式中自動創(chuàng)建Entity模型的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06
ASP.NET Core跨站登錄重定向的實現(xiàn)新姿勢
這篇文章主要給大家介紹了關(guān)于ASP.NET Core實現(xiàn)跨站登錄重定向的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07

