Welcome

首页 / 脚本样式 / Ajax / 利用AJAX和ASP.NET实现简单聊天室

利用AJAX和ASP.NET实现简单聊天室2011-05-01Dahan Abdo介绍

我的第一个简单的Chat room 是用ASP 3.0 写成的。那无外乎有二个TextBox,他们发送 消息给程序变量然后显示在一个每秒刷新的页面上。在那个时代,一个真正的聊天室必须运 用Java Applet或ActiveX control。不过这一切都在AJAX到来之后改变了。AJAX是一个结合 了XML 和 JavaScript的异步通信机制。现在我们可以只用服务器代码和一点JavaScript 。 这篇文章就是介绍如何用AJAX技术来构建一个简单的聊天室。

示例程序

示例程序是一个单一的多用户聊天室。其内部维护着一个已登录用户的列表。列表将祛 除session过期的用户。同时它还支持一些命令比如 /admin Clear 清除聊天室 /nick [Name] 改变用户姓名。

你还需要知道

这个程序使用一个类叫做 ChatEngine 。 这个类控制了全部的用户和消息。用户被储存 在一个Hashtable 里,而消息储存在 StringCollection 里:

Hashtable users;StringCollection chat;

一个 ChatEngine 的全局实例被放置在 Global.asax.cs :

public static UChat.ChatEngine.IChatEngine Engine =new UChat.ChatEngine.ChatEngine();

一个JavaScript 函数用来异步的将全局变量内的数据显示在页面上:

function setTimers(){timeID = window.setTimeout( "updateAll()", refreshRate );}

利用每个用户提供的名称和ID来标识用户:

public void AddUser(string id, string user){//make sure user name does not exist alreadyif( !UserExists( user ) ){//add user to users listusers.Add( id, user );//display a notification message to all users chat.Add( this.MakeServerMessage(string.Format(joinedfmt, user ) ));}}