当前位置: 网学 > 编程文档 > ASP > 正文

用ASP构筑主页聊天室

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
"show")
Application.unlock
End if
Else
If Talk< >""then //送出悄悄话信息。
Application.lock
Application(Secret")=Session("name")&"给你的悄悄话:"& Talk // 此处 Secret为悄悄话接收者的代号,对照Application.unlock //words.asp中悄悄话显示语句,你会发现只有接收者才会显示这条悄悄话的,很巧妙吧。
End if
End if


这样,聊天室的基本框架建好了,你可以找几个朋友进去欲言了。但是还十分简陋,接下来将给聊天室增添一些重要功能如,在线人数统计、聊天代号列表、聊天动作设计、刷新时间控制等。
三、聊天室功能扩允
1、在线人数统计
我们设置一个全局的Application("peopenumw")变量存放在线人数,并用一个Session("access")变量表示客户状态即是否已进入聊天室。每次登录进入聊天室时,根据ac-cess的状态对peoplenum进行增一或减一的操作,这样一来可以避免客户重复登录以及重复增减计数(比如客户多次点击BACK按钮或FORWARD按钮)。具体实现为:
进入聊天室时判断access=0时(未进入聊天室),则在 login.asp页面提交后可以进入主聊天室,并将peoplenum加一,access标志置一;当access=1时(已经进入聊天室未正确退出),在进入login..asp页面时将弹出警示框“你未退出聊天室,请勿重复登录。”并重导航至聊天室内,以让客户退出。此时peoplenum不增加。
退出聊卫室时的情况相似,当access=1时,peoplenum减一;当access=0时,peoplenum不变。

可能朋友会提出一个问题,如果用户非正常退出,比如直接切换地址栏或关闭浏览器,能否正确统计出这种人数减员呢?可以的,每个Session都有一个On-SessionEnd事件,当Session结束时触发运行。因此可以在此事件处理程序中加入:
If Session("access")=1 then
Application.lock
Application("peoplenum")=Application("peoplenum")-1
Application.unlock
End if

这样,当一个客户非正常退出一段时间(Session之Timeout属性决定)以后,会自动减去这个人数的。
2、聊天室代号控制
聊天室代号作为聊天成员的标志,要求能列出线代号表,且不允许同名。我解决这个问题的办法是用了VBSCRIPT的一个内置对象Dictionary,它就是一个带键值的数组,可以通过方法add、remove进行成员增减,还可以用函数EXISTS判断某个键值是否存在,这正好用于防止代号同名。
首先我们要创建一个Dictionary对象,可以在脚本中用Set Nickname=CreateObject("Scripting.Dictionary")创建,这里我们也可以在Global.asp中通过(object)标记创建,就可以在任何地方引用它了。
(OBJECT RUNAT="SERVER"SCOPE=APPLICATION ID=ohatname PROID="Scripting.Dictionary")(/OBJECT)
注:Global.asp是放置在网站根目寻下的一个ASP专用文件,每当web服务器启动或关闭时,都会执行Global.asp文件,故常用作初始化或清理工作。
每次登录时,首先把代号传给Session("name"),然后
Nickname=Trim(Requeat.form("txtbox"))

chatname.add Nickname,Nickname

这样,在chatname中就保存了所有在线客户的代号。
而在每次退出时,要删除聊天代号:chat-name.remove Session("name")
如何在聊天室中列出在线客户代号呢?可以把悄悄话文本输入框改为一个可下拉的列表框,点击它时下拉显示所有代号列表,很简洁方便。
(select name="secrt'')
(option Selected)//缺省选择为空,即不送悄悄话。
(% For=1 to chatname.count-1 %)
(option) (%=chatname.Session("name")%)// 列出所有代号名。
(%Next%)
(/select)
3、聊天室动作设计
如果你常去BBS聊天室的话,一定觉得那些

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号