中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

Server-push技術(shù)(comet)----------asp.net中的異步處理+client與服務(wù)器端的長連接

  server-push技術(shù)已經(jīng)面世很久了,但直到GTALK的誕生才慢慢的引導(dǎo)出這項技術(shù),不過到現(xiàn)在為止,也很少有人去應(yīng)用這方面的技術(shù),server-push倒底是一個什么樣的東西呢?

  故名思義,server-push即“服務(wù)器推”的意思,ajax大家都用過,它和server-push是完全相反的兩個東西,ajax是從服務(wù)器端拉取數(shù)據(jù),如果要定期更新頁面上顯示的數(shù)據(jù)塊,那么最簡單的方法就是寫個計時器,server-push則不同,它的本質(zhì)是將client與server建立一個長連接,即連上后不斷開,一旦服務(wù)器端有新的數(shù)據(jù)就將其推送到客戶端,講到這里出現(xiàn)了幾個問題。

  1.ajax與server-push的區(qū)別與相同點分別是什么?

  答:ajax與server-push的共同點是,它們同樣使用Javascript實現(xiàn)數(shù)據(jù)無刷新展示,區(qū)別在于,如果你使用ajax時時更新數(shù)據(jù),那么無論服務(wù)器端數(shù)據(jù)有無變化,都會定期向服務(wù)器端取數(shù)據(jù),這樣便造成了一些不必要性能消耗,對服務(wù)器造成了一定的壓力,而server-push則不同,它是在服務(wù)器端有新數(shù)據(jù)產(chǎn)生的時候才對客戶端進(jìn)行數(shù)據(jù)反饋,不過其缺點也產(chǎn)生于此,因為它會占用WEB服務(wù)器的連接數(shù),用戶訪問量大且對連接數(shù)有一定限制的WEB服務(wù)器是不適用于server-push的。

  2.服務(wù)器端如何發(fā)現(xiàn)有新數(shù)據(jù)?

  答:這個問題需要根據(jù)具體應(yīng)用環(huán)境來看,如果用于“即時通訊”工具的在線用戶統(tǒng)計,服務(wù)器端發(fā)現(xiàn)有新用戶登錄,即向所有客戶端推送數(shù)據(jù),還有一種用得比較多的方式是在服務(wù)器端使用多線程來監(jiān)控數(shù)據(jù)的更改。

  3.服務(wù)器端如何往客戶端推數(shù)據(jù)?

  答:此問題是最關(guān)鍵的,服務(wù)器端怎么推送數(shù)據(jù)到客戶端呢?.NET中有個異步回調(diào),使用它便可以實現(xiàn)服務(wù)器端往客戶端數(shù)據(jù)的推送,.NET中異步回調(diào)是怎么回事呢?其實很簡單.

  e.g. 寫個類,假如專門用來實現(xiàn)異步回調(diào),必須注意以下幾點

  1>繼承IHttpAsyncHandler接口   //定義 HTTP 異步處理程序?qū)ο蟊仨殞崿F(xiàn)的協(xié)定。

  2>以下幾個方法不能少

//啟動對 HTTP 處理程序的異步調(diào)用。    public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) {}    //進(jìn)程結(jié)束時提供異步處理 End 方法。    public void EndProcessRequest(IAsyncResult result){}    //獲取一個值,該值指示其他請求是否可以使用 IHttpHandler 實例。 (繼承自 IHttpHandler。)    public bool IsReusable{get { return false; ; }}    //通過實現(xiàn) IHttpHandler 接口的自定義 HttpHandler 啟用 HTTP Web 請求的處理。 (繼承自 IHttpHandler。)    public void ProcessRequest(HttpContext context){throw new NotImplementedException();}    //重點在這里,這里負(fù)責(zé)向客戶端寫數(shù)據(jù)       try    {      context.Response.Write(this.value);          if (m_Callback != null)          {            m_Callback(this);//此處執(zhí)行完畢,客戶端ajax的請求便可獲取到服務(wù)器端推送的數(shù)據(jù)了           }     }     catch { }     finally     {       m_IsCompleted = true;     }

NET技術(shù)Server-push技術(shù)(comet)----------asp.net中的異步處理+client與服務(wù)器端的長連接,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久九精品 | 射欧美 | 日韩久久网 | 国产日韩欧美一区二区 | 久久精品免费观看 | 99精品国产一区二区三区 | 天天操夜夜操 | 黄网站在线观看 | 精品成人av | 色婷婷综合久久久中字幕精品久久 | 少妇无套高潮一二三区 | 国产精品永久久久久久久www | 国产91在线视频 | 国产一区二区精品在线观看 | 成人a视频在线观看 | 欧美一区二区三区大片 | 久草网在线视频 | cao在线 | 黄色毛片网站在线观看 | 日韩一区在线播放 | 亚洲精品在线91 | 懂色av色香蕉一区二区蜜桃 | 亚洲国产福利视频 | 一级毛片色一级 | 中文字幕在线中文 | 亚洲 精品 综合 精品 自拍 | 欧洲国产精品视频 | 91精品国产91久久久久福利 | 国产美女自拍视频 | 一区二区三区高清在线观看 | 99精品一级欧美片免费播放 | www.操.com | 成人免费久久 | 国产精品欧美精品日韩精品 | 涩涩鲁亚洲精品一区二区 | 啪一啪在线视频 | 久久精品国产99国产精品 | 91 在线| 一区二区视频 | 中文字幕一区二区三区精彩视频 | 国产黄色在线 |