在我写下了《在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] 下一页