在我寫下了《在asp聊天室裡實現悄悄話功能》一文後,很多的朋友來信問我關於其他進階功能實現的問題。確實,例如房間、使用者管理等進階功能是一個完善的聊天室所必有的功能。在這裡面又以房間功能是比較難於實現的。因此我想和大家談談 這個問題。
我依然傾向於用數組來解決這兩個問題,這並不是說不能用資料庫來解決,但我們要考慮效能的問題。而且用數組有幾個好處,利於排序,利於控制總的長度。在伺服器記憶體中長駐(有利於效能的提高)。我先講一講房間的問題,這裡給出大家在兩個系統 房間中切換的方法。至於自建房間的方法,希望大家能觸類旁通。還有關於使用者線上顯示的問題,因為我們既要顯示各個房間的使用者和總的使用者,所以會和房間產生一些互動,在講的時候請大家注意。為了大家使用的方便,我盡量把這些功能寫成子程式或子函數,大家可以直接的應用。
我們先看在gloable.asa中的定義,這很重要。
以下為引用的內容: <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart() application("gRoom_Name")="逍遙遊" '儲存主聊天室的名字,所有人先到的聊天室 dim pChat_Value(50) application(application("gRoom_Name")&"_Value")=pChat_Value 'p代表private g代表globle 用來儲存逍遙遊聊天室的內容 application(application("gRoom_Name")&"_Number")=0 '用來儲存逍遙遊聊天室的談話的數目 application("養生主"&"_Value")=pChat_Value application("養生主"&"_Number")=0 dim pChater_Value(150) application(application("gRoom_Name")&"er_Value")=pChater_Value '用來儲存逍遙遊聊天室的聊天者的名字 application(application("gRoom_Name")&"er_Number")=0 '用來表示逍遙遊聊天室的上線的人數 application("養生主"&"er_Value")=pChater_Value application("養生主"&"er_Number")=0 dim pRoom_Value(50) pRoom_Value(0)="逍遙遊"&"("&"系統"&")"&"["&application(application("gRoom_Name")&"er_Number")&"]"&"人" pRoom_Value(1)="養生主"&"("&"系統"&")"&"["&application("養生主"&"er_Number")&"]"&"人" application("gRoom_Value")=pRoom_Value '用來儲存房間的名字 application("gRoom_Number")=2 End Sub Sub Session_OnStart() session("sRoom_Name")=application("gRoom_Name")'每個新使用者的預設房間 session("sChater_Name")="" 's代表session 用來儲存說話者的名字 strProvider="Driver={Microsoft Access Driver (*.mdb)}; DBQ="&server.mappath("../chat")&"\"&"db\Chater_Message.mdb;" set Cres=server.createobject("ADODB.Connection") set res=server.createobject("ADODB.Recordset") Cres.open strProvider res.activeconnection=Cres set session("res")=res '一個Recordset的執行個體 End Sub |
共3頁: 上一頁 1 [2] [3] 下一頁