分享
 
 
 

ASP在红蜻蜓中实现多房间

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在global中完成两件事

新房间在线人员名单的初始化(application_onstart)

Dim nameindex(0)

useronlinename=" "

onliners=0

Application("hxf_c_onlinelist")=nameindex

Application("hxf_c_useronlinename")=useronlinename

Application("hxf_c_chatrs")=onliners

将这一段提前在rs.close setrs=nothing

然后加入

rs.Close

rs.Open "select id from reginfo where grade>6",conn

do while not (rs.EOF or rs.BOF)

--chatroomsn=rs("id")

--Application("hxf_c_onlinelist"&chatroomsn)=nameindex

--Application("hxf_c_useronlinename"&chatroomsn)=useronlinename

--rs.MoveNext

loop

关于Session_OnEnd的修改应该在后面说才对

然后就是加入聊天室了hqtchat.asp关于这儿的调用我们应该加两个参数

chatroomsn和chatroomname聊天室的房间号和聊天室的名称

chatroomsn=request.querystring("chatroomsn")

chatroomname=request.querystring("chatroomname")

创建session("hxf_c_mylocale")=chatroomsn

换聊天室的名称

chatroomname=Application("hxf_c_chatroomname")

为chatroomname=Application("hxf_c_chatroomname")&mychatroomname

crm="<%=Application("hxf_c_chatroomname")%>";

为crm="<%=Application("hxf_c_chatroomname")&mychatroomname%>";

然后就是替换了找出你所有文件中的application("hxf_c_useronlinename")为application("hxf_c_useronlinename"&session("hxf_c_mylocale"))

替换application("hxf_c_onlinelist")为application("hxf_c_onlinelist"&session("hxf_c_mylocale"))当然Application_OnStrat中的部分除外

事实是我是在chatroomsn=session("hxf_c_mylocale")之后用chatroomsn换掉了上面的session("hxf_c_mylocale")在循环中这样调用session并不是一个好主意

这样每个房间有了自己的独立的在线名单了

下一步是什么?我只能对我自己所在聊天室中的人说话而且也只能收到同一房间中的人说的话是的那我们应该在我们说的每一句话中加入一个关于房间号的信息,可是我并不想再加一个sd信息这样会好麻烦的,于是我看中了syscolor,先改syscolor中的blue和black因为这两个值 是不定长的不好处理,改成0000ff和000000好了有什么 变化呢没有只是也是六个字符长的了这样更好处理好了下一步吧

那我们说的话就是newsd(537)=addwordcolor&cstr(chatroomsn)了

机器人吗?它是这样说的autonewsd(537)=sayscolor&cstr(chatroomsn)

其中的chatroomsn=session("hxf_c_mylocale")

好了,我们说的话中有了我们的房间信息了如何接收呢

在t.asp中

Select Case sift

Case "0","1","2"

中的每一个case中我们都在if判 断中多加一个检测

and mid(sd(i+5),7)=chatroomsn

颜色住信息中多出的房间号现在不处理出没有关系的

javascript解释RGB信息时会自己去除的

如果想也可以是 show(j+5)=left(sd(i+5),6)

好了,现在看起来没有事了我们的确有了不同的房间了只是好象没有入口而已

这样好了你可以自己加我是在hqtchat中另加了一个框架我加在f3的上方你可以自便

<frame src="selectchatroom.asp?chatroomsn=<%=chatroomsn%>" name="chatroomfrm" scrolling="NO" noresize marginwidth="0" marginheight="0">

其中的selectchatroom.asp为

<%Response.Expires=0

mychatroomsn=session("hxf_c_mylocale")

chatroomsn=Request.QueryString("chatroomsn")

%>

<form name=form1>

<select name=chatroomselect onchange='javascript:changechatroom();'>

--<%online=split(trim(application("hxf_c_useronlinename"))," ")

----onlinenum=ubound(online)+1

--%>

<option value='/' <%if chatroomsn=mychatroomsn then Response.Write "selected"%>>

--<%=application("hxf_c_chatroomname")%>/

--<%=onlinenum%>人在线

</option>

<%

set conn=server.CreateObject("adodb.connection")

conn.Open application("hg_connstr"),conn

set rst=server.CreateObject("adodb.recordset")

rst.Open "SELECT ID,username from reginfo where grade>6",conn

do while not (rst.EOF or rst.BOF)

--chatroomsn=rst("ID")

--chatroomname=rst("username")

--useronline=application("hxf_c_useronlinename"&chatroomsn)

--onlinelist=split(trim(useronline)," ")

--onlinelistnum=ubound(onlinelist)+1

%>

--<option value="<%=chatroomsn%>/<%=chatroomname%>" <%if cstr(chatroomsn)=mychatroomsn then Response.Write "selected"%>>

--<%=chatroomname%>/

--<%=onlinelistnum%>人在线

--</option>

<%

--rst.MoveNext

loop

%>

</select>

</form>

<script language=javascript>

function changechatroom()

{

--var chatroomoption=document.form1.chatroomselect.value;

--var chatroomoptmp;

--var chatroomsn;

--var chatroomname;

--chatroomtmp=chatroomoption.indexOf('/');

--chatroomsn=chatroomoption.substring(0,chatroomtmp);

--chatroomname=chatroomoption.substring(chatroomtmp+1);

--top.t.location.href="about:blank";

--top.d.location.href="about:blank";

--top.f3.location.href="changechatroom.asp?chatroomsn="+chatroomsn+"&chatroomname="+chatroomname;

}

</script>

好了现在让我们写changechatroom.asp吧

更简单了,得到房间名称和房间号先

mychatroomsn=Request.QueryString("chatroomsn")

chatroomname=Request.QueryString("chatroomname")

然后在下面加入exitchat.asp中的部分,当然是已经更改过了的exitchat.asp呀

去掉最后对close.asp的调用

最后加入新的处理方法

<script language=javascript>

var mychatroomsn="<%=mychatroomsn%>";

var chatroomname="<%=chatroomname%>";

top.location.href='jhchat.asp?chatroomsn='+mychatroomsn+'&chatroomname='+chatroomname;

</script>

这样就行了不是很简单吗

新的房间在线名单不会更新

你可以用refresh 和settimeout 但是我想也许不会有多少人关心,而总是重读数据库并不是个好的主意如果你要用 refresh的话我建议是三分钟

事实上这样的房间只有六级的人能开如果你的服务器再的足够好,你可以让每个人都能开当然你应该在限定了房间数量之后实时更新,这样会更有趣些,所有的房间都没有新的管理功能?正是因为这样我才只让六级的人才能有自己的房间,当然他不在线就!!

好象就这样了,应该没有错了,自己做了呀

事实上我已经调试通过了,也算了我给大家的元宵礼物吧

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有