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

ASP
ASP中数据库调用中常见错误的现象和解决方法
ASP取出HTML里面的图片地址的函数
关于分页查询和性能问题
利用Asp生成整站静态
用ASP+XMLHTTP编写一个天气预报程序
轻松检测浏览器是否接受Cookies信息
净化网络环境:ASP程序实现过滤脏话
入门:防范SQL注入攻击的新办法
如何对ASP.NET进行性能优化
ASP无法更新ACCESS数据库解决方法
ASP:利用ASP把图片上传到数据库
ASP:用ASP编程实现网络内容快速查找
ASP:用ASP打造一个小型的网页BBS系统
ASP:用Asp编程实现QQ的在线情况查询
通过表单创建word的一个例子
在ASP中轻松实现记录集分页显示
ASP中实现小偷程序的原理和简单示例
ASP:6行代码实现无组件上传
实用篇:用asp实现QQ在线查询
如何轻松打造ASP计数器

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 21 ::
收藏到网摘: 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