一个简单聊天室实例
来源:互联网 发布:dot.js和vue.js 编辑:程序博客网 时间:2024/06/04 19:20
这个简单的聊天室没有与数据库连接,但是它实现了一个聊天室的基本功能,如登录验证、在线提示、在线人数统计、聊天记录等,主要用到表单、request对象、response对象、application对象、session对象、cookie对象、server对象等。
1.打开VS2005,新建一个项目命名为ChartRoomTest
右键单击解决方案选择“添加新项”菜单命令,在弹出的对话框中选择“全局应用程序类”,单击“添加”按钮
双击打开Global.asax文件,添加如下代码
在 Application_Start事件中添加代码:
string[] TempTalk = new string[10];//用于存储聊天室的前十个聊天记录
Application["TalkConten
t"] = TempTalk;
Application["TalkId"] = 0;//存储聊天室记录的总数
Application["UserCount"] = 0;//存储目前的在线人数
在Session_Start中添加:
Session.Timeout = 30;//会话的失效时间为30分钟
Session["UName"] = "";//登陆的名字
int uCount = Int32.Parse(Application["UserCount"].ToString());
uCount += 1;
Application["UserCount"] = uCount;//在线人数
在 Session_End中添加
int uCount = Int32.Parse(Application["UserCount"].ToString());
uCount = uCount - 1;
Application["UserCount"] = uCount;
2.聊天室的登陆
进入聊天室后需要一个用于聊天的用户名,这个就需要通过登陆功能来完成
将default.aspx重命名为Login.aspx,切换到设计视图,布局控件如图:
其中: 登录名 id属性值为NameTxt 。 密码id属性值为Pwdtxt
登陆事件:
protected void btnLogin_Click(object sender, EventArgs e)
{
// 定义两个变量用来获取用户登录名和密码
string strUserName;
string strPassword;
strUserName = Request.Form["NameTxt"].ToString().Trim();
strPassword = Request.Form["PwdTxt"].ToString().Trim();
/*if (!((strUserName == "yolanda") || (strPassword == "123")))
{
Response.Redirect("login.aspx");
}*/
if (strUserName == Session["UName"].ToString())
{
lblMessage.Text = "对不起,您已经登陆了";
}
else
{
//将用户名和密码存储到对应的UserName和Password中,并将用户名存储到session的UName中
Session["UserName"] = strUserName;
Session["Password"] = strPassword;
Session["UName"] = strUserName;
Response.Redirect("main.aspx");
}
}
取消事件
protected void btnCanle_Click(object sender, EventArgs e)
{
Response.Write("<script language='javascript' text='text/javascript'>window.close()</javascript>");
}
3.聊天室的聊天主界面Main.aspx
此界面用到了HTML中的<frameset>标签,该标签作用是把页面分为上下两个窗口,上面窗口显示Display.aspx页面,下面的窗口显示Send.aspx页面。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<Frameset rows="*,65">
<frame src="Display.aspx" scrolling="auto"></frame>
<frame src="Send.aspx" scrolling="auto"></frame>
</Frameset>
</html>
4.发送聊天信息页面Send.aspx
界面为:
文本框ID属性为:Messagetxt 。“发送”按钮id属性为:submitBtn 。 “清除 ” id属性为:ClearBtn
“发送”按钮SubmitBtn_Click事件
protected void SubmitBtn_Click(object sender, EventArgs e)
{
if (Request.Form["MessageTxt"] != "")
{
Application.Lock();
//如果聊天记录超过了10条
if (Int32.Parse(Application["TalkId"].ToString()) >= 10)
{
//将数组内容向下标减小的方向移动一位
for (int i = 0; i < 9; i++)
{
((string[])Application["TalkContent"])[i] = ((string[])Application["TalkContent"])[i + 1];
}
//通过中间变量使聊天记录条数减1,并保存到原来的application对象的TalkId变量中
int talkId = Int32.Parse(Application["TalkId"].ToString());
talkId = talkId - 1;
Application["TalkId"] = talkId;
}
string strUserName, strContent;
string[] arrTempTalk = new string[10];
int id;
//获取用户登录用户名
strUserName = Session["UserName"].ToString();
//对用户输入的文本进行html编码
strContent = Server.HtmlDecode(this.MessageTxt.Text);
arrTempTalk = (string[])Application["TalkContent"];
id = Int32.Parse(Application["TalkId"].ToString());
arrTempTalk[id] = strUserName + " " + DateTime.Now.ToString() + "<font color=yellow> 说到:</font>" + strContent;
id = id + 1;
Application["TalkId"] = id;
Application["TalkContent"] = arrTempTalk;
Application.UnLock();
this.MessageTxt.Text = "";
}
}
取消:
protected void ClearBtn_Click(object sender, EventArgs e)
{
this.MessageTxt.Text = "";
}
未完,待续
- 一个简单聊天室实例
- 一个简单的聊天室
- 一个简单聊天室的建立
- 一个简单的聊天室程序
- 一个简单的java聊天室
- 一个很简单的聊天室
- 一个简单的Android聊天室
- 简单的一个在线聊天室
- socket通信实例(简单的聊天室)
- 用ASP建立一个简单的聊天室
- 用ICE实现一个简单的聊天室
- 基于jQuery的一个简单聊天室
- 用ICE实现一个简单的聊天室
- 用PHP设计一个简单的聊天室
- Node.js 一个简单的聊天室
- 用NodeJS实现一个简单的聊天室
- 用js写一个简单的聊天室
- 使用Unity制作一个简单的聊天室
- 【hibernate】映射集合属性list
- VC++中鼠标拖动实现两对话框之间信息的转移(优化篇)
- 【jdbc】java连接mySQL数据库 初步
- 比较实用的手风琴菜单及导航菜单
- 使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序,第 1 部分: Web Services 服务端应用程序
- 一个简单聊天室实例
- 滚动视图
- 二叉树遍历递归和非递归算法总结
- XCode的一些调试技巧 控制台
- tomcat,weblogic,jboss区别
- myeclipse不编译JAVA文件解决方法
- NET Reflector 7.6.1.824安装及破解
- linux 安装步骤说明
- ARM Linux 3.x的设备树(Device Tree)