首页 > OOP语言 > AJAX > 正文

用Asp.Net创建基于Ajax的聊天室程序
2010-12-08 00:00:00   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

如要下载源代码,请到原文地址: http://www.codeproject.com/Ajax/UChat.asp

简介

我的第一个chat room 是用ASP 3.0写的。 程序比较简单,两个text box, 用来处理页面上每秒刷新的信息。那时候,要想建一个真正的chat room,要用 到Java Applet 或者 ActiveX control。基于HTTP的chart rooms都面临着一些 跟我第一个chat room一样的问题。这些问题包括页面刷新导致的屏幕闪烁现象 。但这个问题已经被AJAX解决了。AJAX是JavaScript和 XML异步调用的结合。现在在server端用一些JavaScript代码就可以实现一个真正的chat room了。这 篇文章不会介绍Ajax,并假设你已经对Ajax和ASP.NET的运用有一定了解。只是 介绍如何用Ajax技术来创建一个基本的chat room。

例 程

这是一个多用户的单一chat room。可以实现基本的聊天功能,还支持一些命 令行如: /admin clear 用来清除聊天记录,/nick [Name] 用来更改用户昵称 等。程序说明这个程序用一个ChatEngine类来处理所有的聊天信息和用户信息, 用户信息存储在一个Hashtable中,聊天信息存储在StringCollection中。

Hashtable users;
StringCollection chat;

在Global.asax.cs 中声明一个全局的ChatEngine的实例,为chat room中所 有users共用:

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

还有一个JavaScript timer函数用来同步全局变量和页面信息。

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

每一个user都由一个username和一个GUID来唯一标识。

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

程序运行界面

\

相关热词搜索:

上一篇:用动态元素自动更新Web页面
下一篇:用通用的Ajax工作空间管理任务

分享到: 收藏