c聊天室系统asp ajax,利用AJAX和ASP.NET实现简单聊天室

利用AJAX和ASP.NET实现简单聊天室

我的第一个简单的Chatroom是用ASP3.0写成的。那无外乎有二个TextBox,他们发送消息

给程序变量然后显示在一个每秒刷新的页面上。在那个时代,一个真正的聊天室必须运用

Applet或ActiveXcontrol。不过这一切都在AJAX到来之后改变了。AJAX是一个结合了XML和

Script的异步通信机制。现在我们可以只用代码和一点JavaScript。这篇文章就是介绍如何

用AJAX技术来构建一个简单的聊天室。

示例程序

示例程序是一个单一的多用户聊天室。其内部维护着一个已登录用户的列表。列表将祛除

session过期的用户。同时它还支持一些命令比如/adminClear清除聊天室/nick[Name]改

变用户姓名。

你还需要知道

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

个Hashtable里,而消息储存在StringCollection里:

Hashtableusers;

StringCollectionchat;

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

publicstaticUChat.ChatEngine.IChatEngineEngine=newUChat.ChatEngine.ChatEngine();

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

functionsetTimers()

{

timeID=window.setTimeout("updateAll()",refreshRate);

}

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

publicvoidAddUser(stringid,stringuser)

{

//makesureusernamedoesnotexistalready

if(!UserExists(user))

{

//addusertouserslist

users.Add(id,user);

//displayanotificationmessagetoallusers

chat.Add(this.MakeServerMessage(string.Format(

joinedfmt,user)));

}

}

截图和实现步骤

主页显示了聊天室的基本信息,比如有多少人在聊天室、ChatLog的大小。

为了能够登录聊天室,必须提供一个名称。

当Login按钮被单击。下面的代码就会被执行:

protectedvoidLogin(objectsender,EventArgse)

{

stringuser=txtUsername.Text;if(!ValidateNick(user))return;

if(Global.Engine.UserExists(user))

{

lblErrorMsg.Text="Auserwiththis"+

"namealreadyexists,tryagain."

return;

}

Response.Redirect("Server.aspx?action=Login&u="+user);

}

进行一些验证以后,用户会被转向到另一个页面,这个页面会利用AddUser函数将用户放

入用户列表。当这一切都做好了。用户又会被转向到Chat.aspx页面,下面的JavaScript函

数将要执行在这个页面上:

sniffBrowserType();

//Showsloading..screen

showLoadScreen();

//Setthejavascripttimerand

//loadsuserlistandmessages

setTimers();

setFocus('mytext');

id="mytext"οnkeydοwn="captureReturn(event)">

当用户输入了文字,并且按了回车。下面的代码就会被执行:

//Capturetheenterkeyontheinputboxandpostmessage

functioncaptureReturn(event)

{

if(event.which||event.keyCode)

{

if((event.which==13)||(event.keyCode==13))

{

postText();

returnfalse;

}

else{

returntrue;

}

}

}

functionpostText()

{

rnd++;

//Cleartextboxfirst

chatbox=getElement("mytext");

chat=chatbox.value;

chatbox.value=""

//getuserGUIDfromurl

userid=location.search.substring(1,location.search.length);

//constructAjaxServerURL

url='Server.aspx?action=PostMsg&u='+userid+'&t='+

encodeURIComponent(chat)+'&session='+rnd;

//Createandsettheinstance

//ofappropriateXMLHTTPRequestobject

req=getAjax();

//Updatepagewithnewmessage

req.onreadystatechange=function(){

if(req.readyState==4&&req.status==200){

updateAll();

}

}

req.open('GET',url,true);

req.send(null);

}

完工!

点击转贴链接查看更多相关>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP是一种用于创建动态网页的服务器端脚本语言,而AJAX是一种通过后台异步请求实现页面无刷新更新的技术。要实现一个简单聊天室,可以使用ASPAJAX的结合使用。 首先,我们需要一个包含聊天室界面的ASP页面。在页面中,我们可以添加一个文本框输入框用于输入聊天内容,以及一个按钮用于发送消息。还可以添加一个用于显示聊天内容的区域。 在后台,我们可以使用ASP来处理用户的消息发送和接收。当用户点击发送按钮时,可以使用AJAX来发送消息到后台的ASP页面。在后台,我们可以将接收到的消息存储到数据库或者其他数据源中,并返回一个成功的响应给前端。 同时,我们可以定期使用AJAX来从后台获取新的消息。在前端,我们可以使用JavaScript定时请求后台的ASP页面,获取最新的消息。后台可以从存储消息的数据库或其他数据源中获取最新的消息,并返回给前端。 在前端,我们可以使用JavaScript将接收到的消息动态地添加到聊天窗口中。可以使用DOM操作来动态地创建和添加聊天消息的元素,以及修改其内容。 总结来说,通过使用ASPAJAX的组合,我们可以实现一个简单聊天室。用户可以在前端输入消息并发送,后台接收到消息后保存并返回,前端定时获取并动态显示接收到的新消息。这样就实现了一个简单的聊天功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值