当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在红蜻蜓中实现多房间

ASP
使用索引服务器 - 创建ASP页面
使用索引服务器 - 增加属性
用TDC建立自己的数据库格式
较长text型数据无法在Asp页面中取出的解决办法
用ASP控制Flash
计算ASP页面的载入时间
页面延迟的两个简单方法
将ASP生成的内容写入响应流中最有效的方法
如何使用asp创建dsn?
清除浏览器历史记录代码
不离开页面刷新数据
得到表中字段属性代码
用js制作完善的日,月组合下拉框.
WEB页面实现淡入淡出菜单
不用组件来实现StrCat函数的功能
不用java的垂直滚动看板
使用Server.scripttimeout来减少ASP意外错误而使务器瘫痪
ODBC Drivers错误80004005的解决办法
用ASP方式实现动态伸缩形式列表主页
如何使ASP程序暂停指定的时间后再继续执行

ASP 中的 在红蜻蜓中实现多房间


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 142 ::
收藏到网摘: n/a

       在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