新房间在线人员名单的初始化(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 grade6",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的上方你可以自便