这个简单的聊天室没有与数据库连接,但是它实现了一个聊天室的基本功能,如登录验证、在线提示、在线人数统计、聊天记录等,主要用到表单、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("