在主页上拥有一个聊天室,会给你的主页空间增添许多情趣,特别是在 Intranet 或局域网内更是乐趣无穷。然而传统的CGI编程是一件头疼的事,随着
asp技术的流行,制作主页聊天室不再是件可怕的事情。跟我一步步的来吧,拥有你自己的聊天室空间。
一、主页聊天室的原理
1、主页聊天室其实并不神秘,名成员间相互通信的方式并非像所表现的那样建立直接的连接,而是通过web服务器作为中介。这时在web服务器更像一个大信箱,里面装着很多信,有大家都可以看的公共信,也有私人信件(既悄悄话),感觉上就像真的相互是在直接通信一样。
对于ASP 的基本原理就不再叙述了。 构筑聊天室的精髓思想就是其内部对象 Application和Session的应用。Application 对象对应了一个全局全域变量的概念,随 服务器的启动关闭而创建删除。任何一个客户任何时候改变了它,都会引起改变,所以在聊天[室程序中用Application 对象来保存公共信息。Session 对象对应了一个客户的局部局域的概念,随客户开始进入站点页面时创建,各个客户拥有一个唯一的Session ID( 此ID保存在客户机Cookie中因此要求浏览器允许接受Cookie ), Session变量的改变对各客户是独立的,而且它可以保存同一站战点同一客户不同网页上的数据,所以在聊天室
程序中用Session对象来保存聊天成员专用信息,如聊天代号、悄悄话等。
用ASP构筑聊天室充分体现了ASP和CGI程序的差别。CGI
程序中,为每一个客户连接创建一个进程,其对资源的耗费是很大的。而ASP中Application 对象保存自己数据,共用一个进程空间,因此ASP的效率是很高的。
二、基础框架的构筑
一共需要两个页面,一个用作登录界面,一个作主聊天页面。登录页面login.asp很简单,就是一个from 表单,提交后把聊天代号等信息送给Session变量Session("name''),然后重导航(Response. Redirect mainchat.asp)到主页面mainchat.asp。主聊天页面由两个frame 组成:
frame1中放words.asp页面,用于显示聊天内容。frame2中放chat.asp 页面,用于发送聊天信息。
2、设置Application和Session 对象
使用Application("show" )存放公共信息,用Session("name")存放聊天室代号,这是很自然的。悄悄话用什么存放呢?这里用了一个很巧妙的方法:用Application(Session("name")存放悄悄话信息!每一个聊天代号都对应一个Application变量 ,在显示页面中用〈% = Application(Session("name")%>将显示属于本代号的悄悄话.
3、显示页面words.asp的关键语句:
<HTML>
<META htpp-equiv="refresh" content="10">// 每10秒钟刷新一次页面
<%=Application(Session("name"))%>// 显示悄悄话,如果有的话
<%=Application("show")%>//显示公共对话信息
</HTML>
4、chat.asp 主要实现消息发送,其中包括一个form表单,以填入要说的话及悄悄话接受者(为空表示公共信息),提交给chat.asp 自身,将表单数据送到各自的变量中去:要发送的消息到Application("show"),悄悄话接收者送到Applicatio(Secret)中。Chat.asp 的关键语句:
Talk=Trim(Request.From("txbox")// 为消息文本输入框, //此语句提取要送的消息内容。
Secret=Trim(Request.Form("secret")//secre为悄悄话接收者文本输入框 //此语句提取悄悄话接收者。
If Secret=""then
If Talk< >""then //发送公共信息到Application("show")
Application.lock
Application("show")=Session("name")&":"&Talk&"<br>"&Application(