• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

用Asp.Net创建基于Ajax的聊天室程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
原作者Dahan Abdo
译自CodeProject

如要下载源代码,请到我的网站,地址:http://www.vczx.com/article/show.php?id=1796

简 介

  我的第一个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()
}

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

public void AddUser(string id, string user)

程序运行界面
 


  开始页面显示一些有关当前session的基本信息,比如user number、聊天记录的大小等。用户必须提供用户名才能进入聊天室。点击Login button进入下面的函数:

protected void Login( object sender, EventArgs e )
}

  经过一些简单验证后,通过AddUser函数将用户加到user lists,然后就进入了聊天室页面chat.aspx,这时下面的JavaScript函数就会被执行:
 


<script type="text/javascript">
      sniffBrowserType();
      
//Shows loading.. screen
      showLoadScreen();
      
//Set the javascript timer and 
      
//loads user list and messages 
      setTimers();
      setFocus(
'mytext');
</script>

  当用户键入一些信息并回车时,就会调用下面的函数:

<input type="text" class="mytext" 
       id
="mytext" onkeydown="captureReturn(event)">

// Capture the enter key on the input box and post message
function captureReturn( event )
}

  就这么多,没什么特别的,你可以看源代码,里面有很多注释信息。

结 论

  要用Java Applet建一个chat room需要在用户的机器上安装JVM。用ActiveX control存在一些安全问题。而用刚才介绍的AJAX,你却可以轻而易举的创建一个基于HTTP并不需要用户安装任何软件就可以运行的聊天室程序,并且很容易维护。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap