實現 asp 的伺服器無重新整理推技術

來源:互聯網
上載者:User
伺服器|重新整理|無重新整理 關於推送技術
-----------------------------
轉載請註明出處:一鶴.NET_WWW.1HE.NET

Client PULL(用戶端拉技術)
通常,聊天室通過不斷重新整理來顯示伺服器的最新資訊,即所謂的Client PULL(用戶端拉技術)Client PULL必須不停的建立串連,重新整理資訊,中斷連線,這樣效率很低,而且速度很慢.(如果加快速度,頻繁的建立中斷連線重新整理頁面都會增加伺服器與用戶端的資源消耗)

Server Push(伺服器推技術)
推技術就是建立一個串連以後,由伺服器主動的把最新資訊源源不斷的推送到用戶端
不需要不停的建立中斷連線,不需要重新整理頁面,相比之下,推技術效率更好速度最快

但是很可惜,一直以來,ASP都不能實現erver Push技術

曾經看過微軟網站提供的ASP推送技術方案,用死迴圈達到伺服器的延時實現Server Push技術,這種代碼只要一個用戶端執行,CPU佔用立即達到百分之百,最重要的是受到ASP線程限制,開啟這個頁面,其他的ASP頁都必須排隊等待這個頁面執行完畢。

實現 asp 的伺服器無重新整理推技術
-----------------------------
轉載請註明出處:一鶴.NET_WWW.1HE.NET

首先我用C++寫了一個ASPpush.DLL,通過ASP代碼的配合達到零負載的延時效果
下載ASPpush.DLL:http://www.1he.net/ASPpush/ASPpush.exe

使用ASP指令EnableSessionState=False突破ASP的線程限制
(這就是最關鍵的地方了,其實ASP本身是多線程的之所以你在ASP中只能得到單線程其原因是ASP對每一個會話產生一個線程,如果在ASP頁面前用上EnableSessionState=False指令,就可以得到一個獨立的線程與TCP串連用來源源不斷的向用戶端推送新的資訊)

使用ASP的Response.IsClientConnected屬性判斷串連及時回收資源

使用以上方法,我製作了一個聊天室,
經過測試,一百人線上聊天,系統的全部CPU佔用不超過百分之五(Windows 2003),
無論在記憶體佔用還是CPU佔用都沒有超過使用用戶端重新整理的聊天室

實際上,使用用戶端重新整理的方法,仍然是一個對伺服器持續的資源佔用,而且必須頻繁的建立串連中斷連線,對於聊天室來說,用戶端重新整理的聊天室的資源佔用是沒有任何優勢的,而且速度非常慢


準備工作
-----------------------------
轉載請註明出處:一鶴.NET_WWW.1HE.NET

下載ASPpush.DLL:http://www.1he.net/ASPpush/ASPpush.exe

解壓縮後首先請運行:Com.reg(這個檔案會在右鍵菜單中添加註冊COM組件的子功能表)

將ASPpush.dll 拷貝到系統目錄
windows2000 $:/winnt/system32
windows2003 $:/windows/system32

右鍵點擊system32/ASPpush.dll
點擊右鍵菜單中出現的“註冊DLL”
(當然你可以在命令列中註冊:Regsvr32 $:/windows/system32/ASPpush.dll)

注意:$: 更換為系統硬碟


範例程式碼
-----------------------------
轉載請註明出處:一鶴.NET_WWW.1HE.NET

下面是使用ASPpush.DLL實現伺服器推送的範例程式碼:

<%@ Language="VBScript" codepage ="936" EnableSessionState=False %>
<%
Response.Buffer = True

set ASPpush = Server.CreateObject("ASPpush.page")
Do While Response.IsClientConnected
'================================
'在這裡修改或自訂要執行的ASP代碼
Response.Write "我暈...<br>"
'================================
Response.Flush
ASPpush.wait 100 '後面的數字以毫秒為單位(1000毫秒=1秒),指定推送的速度
Loop
set ASPpush=nothing
%>


本文主要介紹推技術在ASP中實現的原理,至於具體的實現可能還需要您自已發揮了

----------
附註:

批量檔案播種機最新版:網站程式製作必備工具
http://jh.1he.net/yes/down/list.asp?id=106

前些天寫了一個小軟體:類比精靈,雖然很簡單,不過很實用,也很好玩
也是必備的案頭工具,推薦下載:
http://jh.1he.net/twtbbs/showtopic.asp?id=16931&passre=&forumid=41



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.