国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

在紅蜻蜓中實現(xiàn)多房間

2019-11-18 21:15:29
字體:
供稿:網(wǎng)友
在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

關(guān)于session_OnEnd的修改應(yīng)該在后面說才對
然后就是加入聊天室了hqtchat.asp關(guān)于這兒的調(diào)用我們應(yīng)該加兩個參數(shù)
chatroomsn和chatroomname聊天室的房間號和聊天室的名稱
chatroomsn=request.querystring("chatroomsn")
chatroomname=request.querystring("chatroomname")
創(chuàng)建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"))當(dāng)然Application_OnStrat中的部分除外
事實是我是在chatroomsn=session("hxf_c_mylocale")之后用chatroomsn換掉了上面的session("hxf_c_mylocale")在循環(huán)中這樣調(diào)用session并不是一個好主意

這樣每個房間有了自己的獨立的在線名單了
下一步是什么?我只能對我自己所在聊天室中的人說話而且也只能收到同一房間中的人說的話是的那我們應(yīng)該在我們說的每一句話中加入一個關(guān)于房間號的信息,可是我并不想再加一個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
顏色住信息中多出的房間號現(xiàn)在不處理出沒有關(guān)系的
javascript解釋RGB信息時會自己去除的
如果想也可以是 show(j+5)=left(sd(i+5),6)

好了,現(xiàn)在看起來沒有事了我們的確有了不同的房間了只是好象沒有入口而已
這樣好了你可以自己加我是在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>

好了現(xiàn)在讓我們寫changechatroom.asp吧
更簡單了,得到房間名稱和房間號先
mychatroomsn=Request.QueryString("chatroomsn")
chatroomname=Request.QueryString("chatroomname")
然后在下面加入exitchat.asp中的部分,當(dāng)然是已經(jīng)更改過了的exitchat.asp呀
去掉最后對close.asp的調(diào)用
最后加入新的處理方法
<script language=javascript>
var mychatroomsn="<%=mychatroomsn%>";
var chatroomname="<%=chatroomname%>";
top.location.href='jhchat.asp?chatroomsn='+mychatroomsn+'&chatroomname='+chatroomname;
</script>
這樣就行了不是很簡單嗎

新的房間在線名單不會更新
你可以用refresh 和settimeout 但是我想也許不會有多少人關(guān)心,而總是重讀數(shù)據(jù)庫并不是個好的主意如果你要用 refresh的話我建議是三分鐘

事實上這樣的房間只有六級的人能開如果你的服務(wù)器再的足夠好,你可以讓每個人都能開當(dāng)然你應(yīng)該在限定了房間數(shù)量之后實時更新,這樣會更有趣些,所有的房間都沒有新的管理功能?正是因為這樣我才只讓六級的人才能有自己的房間,當(dāng)然他不在線就!!


好象就這樣了,應(yīng)該沒有錯了,自己做了呀
事實上我已經(jīng)調(diào)試通過了,也算了我給大家的元宵禮物吧  


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 石城县| 通河县| 阳东县| 临漳县| 望城县| 沙坪坝区| 曲麻莱县| 吉木萨尔县| 辉南县| 平阴县| 正蓝旗| 莱州市| 定边县| 鞍山市| 宾阳县| 越西县| 砀山县| 安福县| 灵宝市| 称多县| 策勒县| 合江县| 乐亭县| 昌邑市| 四川省| 越西县| 彭州市| 鹤峰县| 哈密市| 灵丘县| 左权县| 晋宁县| 白玉县| 崇阳县| 天台县| 垫江县| 阳春市| 宁蒗| 庄浪县| 陈巴尔虎旗| 乾安县|