聊天室最重要的功能就是一个用户发出消息后所有用户都要能接收到,接受到消息后应该给这则消息一个标记或者删除操作。ASP的Application对象可以实现Session间的数据交互,再结合类似于Map的Scripting.Dictionary这个内置对象,应该就能实现我想要的效果。但是在实际编写过程中发现Scripting.Dictionary对象实例根本无法存储到Application中,查了MSDN后才知不允许将OBJECT和自定义组件以外的对象存储到Application中,包括自定义Class,晕,只得另想办法,最后选定用数组方式解决。
客户端我用javascript的prototype(原型)功能写了一个ChatRoom类,用面向对象的方式实现了发送接收消息,登录和退出。下面就是聊天窗口,请输入昵称登录后就能开始聊天了:)程序还有很多bug,实在无心调试了。
下载:http://www.duduwolf.com/test/chatRoom.asp.txt
<script language="javascript" type="text/javascript" src="http://www.duduwolf.com/test/chatRoom.asp?act=script"></script>
<div id="chatRoom"></div>
<script>var chat = new ChatRoom('chat', document.getElementById('chatRoom'), 500, 400);</script>