015. asp.net实现简易聊天室
通过Application和Session来实现简单的聊天室和在线用户数统计
Global.asax代码:
<%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e)
{
Application["count"] = ;
// 在应用程序启动时运行的代码
//建立用户列表
string user = "";//用户列表
Application["user"] = user;
Application["userNum"] = ;//用户数
string chats = "";//聊天记录
Application["chats"] = chats;
//当前的聊天记录数
Application["current"] = ;
} void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
Application["user"] = "";
Application["chats"] = ""; } void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码 } void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码
Application.Lock();
Application["count"] = (int)Application["count"] + ;
Application.UnLock(); } void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["count"] = (int)Application["count"] - ;
Application.UnLock();
} </script>
web.config代码:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<sessionState mode="InProc"></sessionState>
</system.web> </configuration>
Login.aspx代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>登录</title>
<style type="text/css">
.style1
{
width: 377px;
height: 209px;
}
.style2
{
width: 89%;
height: 162px;
}
.style3
{
height: 29px;
}
.style4
{
height: 39px;
}
.style5
{
height: 39px;
width: 103px;
}
.style6
{
height: 29px;
width: 103px;
text-align: right;
}
.style7
{
width: 103px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div> </div>
<asp:Label ID="lblCount" runat="server" Text="Label"></asp:Label>
<table align="center" cellpadding="0" cellspacing="0" class="style1" >
<tr>
<td>
<table align="center" cellpadding="0" cellspacing="0" class="style2">
<tr>
<td class="style5">
</td>
<td class="style4" colspan="2">
</td>
</tr>
<tr>
<td class="style6">
昵称:</td>
<td class="style3">
<asp:TextBox ID="TextBox1" runat="server" Width="113px"></asp:TextBox>
</td>
<td class="style3">
<asp:Button ID="btnLogin" runat="server" Font-Size="9pt" OnClick="btnLogin_Click"
Text="登录" />
<asp:Button ID="btnExit" runat="server" Font-Size="9pt" OnClick="btnExit_Click" Text="退出" />
</td>
</tr>
<tr>
<td class="style7">
</td>
<td colspan="2">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
Login.aspx.cs代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls; public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblCount.Text = "您是第" + Application["count"].ToString() + "位访客";//网站人数统计 int P_int_judge = ;
P_int_judge = Convert.ToInt32(Request["value"]); //value的值就是P_int_judge的值
if (!IsPostBack) //IsPostBack 获取一个值,该值指示页是第一次呈现还是为了响应回发而加载
{
if (P_int_judge == )
Response.Write("<script>alert('该用户已经登录!')</script>");
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
Application.Lock();
int P_int_num; //在线人数
string P_str_name; //登录用户
string P_str_names; //已在线的用户名
string[] P_str_user; //用户在线数组
P_int_num = int.Parse(Application["userNum"].ToString());
if (TextBox1.Text == "")
{
Response.Write("<script>alert('用户名不能为空')</script>");
TextBox1.Focus();
}
else
{
P_str_name = TextBox1.Text.Trim();
P_str_names = Application["user"].ToString();
P_str_user = P_str_names.Split(',');
for (int i = ; i <= P_int_num - ; i++)
{
if (P_str_name == P_str_user[i].Trim())
{
int P_int_judge = ;
Response.Redirect("Login.aspx?value=" + P_int_judge);
}
}
if (P_int_num == )
Application["user"] = P_str_name.ToString();
else
Application["user"] = Application["user"] + "," + P_str_name.ToString();
P_int_num += ;
Application["userNum"] = P_int_num;
Session["userName"] = TextBox1.Text.Trim();
Application.UnLock();
Response.Redirect("Chat.aspx");
}
}
protected void btnExit_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(GetType(),"", "<script>window.opener=null;window.open('','_self');window.close();closeCurrentWindow</script>",true);
}
}
chat.aspx代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Chat.aspx.cs" Inherits="Default2" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:ListBox ID="lbList" runat="server" Height="345px" Width="180px"></asp:ListBox> <asp:TextBox ID="txtContent" runat="server" Height="345px" TextMode="MultiLine" Width="380px"></asp:TextBox>
<br />
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
</asp:Timer> </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="txtMessage" runat="server" Width="316px"></asp:TextBox>
<asp:Button ID="btnSend" runat="server" onClick="btnSend_Click" Text="发送" />
<asp:Button ID="btnExit" runat="server"
Text="退出" onclick="btnExit_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
Chat.aspx.cs代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq; public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Timer1_Tick(object sender, EventArgs e)
{
txtContent.Text = "";
int P_int_current = Convert.ToInt32(Application["current"]); //current当前聊天记录的总数
ArrayList ItemList = new ArrayList();
Application.Lock();
string P_str_names; //已在线的用户名
string[] P_str_user; //用户在线数组
int P_int_num = Convert.ToInt32(Application["userNum"]);
P_str_names = Application["user"].ToString();//用户名, 其实是一个以 , 分割的字符串的组织形式
P_str_user = P_str_names.Split(',');
for (int i = (P_int_num - ); i >= ; i--)
{
if (P_str_user[i].ToString() != "")
ItemList.Add(P_str_user[i].ToString());
}
lbList.DataSource = ItemList;
lbList.DataBind(); //绑定用户名
string P_str_chats = Application["chats"].ToString();
string[] P_str_chat = P_str_chats.Split(',');
//往文本框中写入聊天记录
for (int i = P_str_chat.Length - ; i >= ; i--)
{
if (P_int_current == )
{
txtContent.Text = P_str_chat[i].ToString();
}
else
{
txtContent.Text = txtContent.Text + "\n" + P_str_chat[i].ToString();
}
}
Application.UnLock();
UpdatePanel1.Update(); //UpdatePanel用来实现局部更新
}
protected void btnSend_Click(object sender, EventArgs e)
{
if (Session["userName"] == null || Session["userName"].ToString().Length<=)
{
return;
}
int P_int_current = Convert.ToInt32(Application["current"]);
Application.Lock();
if (P_int_current == || P_int_current > )
{
P_int_current = ;
Application["chats"] = Session["userName"].ToString() + "说:" + txtMessage.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
}
else
{
Application["chats"] = Application["chats"].ToString() + "," + Session["userName"].ToString() + "说:" + txtMessage.Text.Trim() + "(" + DateTime.Now.ToString() + ")";
}
P_int_current += ;
Application["current"] = P_int_current;
Application.UnLock();
UpdatePanel2.Update();//更新局部面板
}
protected void btnExit_Click(object sender, EventArgs e)
{
Application.Lock();
string P_str_userName = Application["user"].ToString();
Application["user"] = P_str_userName.Replace(Session["userName"].ToString(), "");
Session["userName"] = ""; //清空session
string astr = Application["user"].ToString();
Application.UnLock();
Response.Redirect("Login.aspx");//退出后转到登录界面
}
}
Login.aspx截图:
aaarticlea/png;base64,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" alt="" />
Chat.aspx截图:
aaarticlea/png;base64,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aEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HYRaEAcgbaLQAPiCLRdBBoQR6DtItCAOAJtF4EGxBFouwg0II5A20WgAXEE2i4CDYgj0HbF43v//v1EjtNbCDQwYQTarkSO40VOfEqggTNBoO1KB7ob5fjHBBo4QwTarvSaRhxr0MCZI9B2pROcUWcCDUwegbbLW+FQnQk0MHkE2q5QiAk0IIJA20WgAXEE2i4CDYgj0HYRaEAcgbarlEADGB9/oPnDH++fiTxxADjlCTQAQAGBBkxYFTMVJ7kaOM+J8QT6rFddAIwq/bheXV1tyQiFT+okW+HznBh/oCd/HgDKQqDLQqABlIxAl4VAAygZgS4LgQZQMgJdFgINoGQEuiwEGkDJhg701fnK/NVWq9VqrS/OdD9aX5yp9Db2d5pZXD/9ZH1xJn7r+uJMdNsQ4StwkuuLM/3jX52vJIUO3/+CBkKgAZRs2EBHfY5/eBpCN8Nuo7ufFK1zRvgKzqB7zxHuWSbPwLnVCXThM52SQN+9WKnMLW93P9lennOesi7eje9WqVRi+wKYuCEDHQta7nzz6vzM4rpnAtuVO1ctaYkjewZtJNCnQXYCHUW57+7Fim8zgAkbLtDrizOB3uYvIKTmskOGb/BAW59B371YmVve7v63u8Ub6EC1AUzcyG8SXp0P9+t01prYYVKB7j2LdA+WG+ghnmoKnefEZAe6n91koJPrG9vLc5W5uTl3I4CzMGqg/WVLvReYMeXOi/VoM+h+l4d9k/B8zKBjixbxQEe2l+dOlz7ii9SsdQBnarRAry/OzC8uzscDlrhWwxO4AS+SKC/Q81edY8fO1J1euyc46tUmE5MR6OSbgb6pcS/GTpQpNHCWRgr0adeuzkc9cy6s8/WtP5eezFUcyUCvX12cqcxfXV+cqVRmFtfX19edvXqneM4CHeefQUct3l6ei3YI7QxgEkYIdKxcp4Fzr6lL9+3qfBTmXiKHDt9Qge6ezuJ84tBGA729PNebHm8vz/XmylGhYxsBnIGhA53sVjy+nv38N6fm2wOEr1Cgo2WM3hp09NM1seVvo4GOrnZOrHlwFTQgYfjroHvVOl2zmFlc98yKE1kcxvCB7q+mdBefUycRZTnzIo6CqzHTEmgAU2OoQPffcPPVK3Z1W6+AmZdNj+0qjt7UN/Po+e09bzNoAFODX5ZUFgINoGQEuiwEGkDJCHRZCDSAkhHosogGGsBUSz+updpHoAvyBBrA+bMqZipOcpVAAwC8CDQAiCLQACCKQAOAKAINAKIINACIItAAIIpAA4AoAg0Aogg0AIgi0AAgikADgCgCDQCiCDQAiPp//2gK7dPn7ZsAAAAASUVORK5CYII=" alt="" />
015. asp.net实现简易聊天室的更多相关文章
- php+websocket搭建简易聊天室实践
1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短 ...
- node.js+websocket实现简易聊天室
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) websocket提供了一种全双工客户端服务器的异步通信方法,这种通信方法使用ws或者wss协议,可 ...
- php_D3_“简易聊天室 ”实现的关键技术 详解
PHP+MySQL实现Internet上一个简易聊天室的关键技术 系统目标: 聊天室使用数据库汇集每个人的发言,并可将数据库内的发言信息显示在页面,让每个用户都可 ...
- Python开发【笔记】:aiohttp搭建简易聊天室
简易聊天室: 1.入口main.py import logging import jinja2 import aiohttp_jinja2 from aiohttp import web from a ...
- 学习JavaSE TCP/IP协议与搭建简易聊天室
一.TCP/IP协议 1.TCP/IP协议包括TCP.IP和UDP等 2.域名通过dns服务器转换为IP地址 3.局域网可以通过IP或者主机地址寻找到相应的主机 4.TCP是可靠的连接,效率低,且连接 ...
- 示例:Socket应用之简易聊天室
在实际应用中,Server总是在指定的端口上监听是否有Client请求,一旦监听到Client请求,Server就会启动一个线程来响应该请求,而Server本身在启动完线程之后马上又进入监听状态. 示 ...
- node+websocket创建简易聊天室
关于websocket的介绍太多,在这就不一一介绍了,本文主要实现通过websocket创建一个简易聊天室,就是90年代那种聊天室 服务端 1.安装ws模块,uuid模块,ws是websocket模块 ...
- 基于Node.js + WebSocket 的简易聊天室
代码地址如下:http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.js ...
- Express+Socket.IO 实现简易聊天室
代码地址如下:http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: 首 ...
随机推荐
- linux基础命令学习(三)Vim使用
1. # vim 1.txt 命令模式: a i o A I O x X yy dd p G dw de h j k l f H M B a --- append 追加 在光标所在位置后追加一个字符 ...
- python数据分析入门——matplotlib的中文显示问题&最小二乘法
正在学习<用python做科学计算>,在练习最小二乘法时遇到matplotlib无法显示中文的问题.查资料,感觉动态的加上几条语句是最好,这里贴上全部的代码. # -*- coding: ...
- 【LeetCode OJ】Best Time to Buy and Sell Stock
Problem Link: http://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock/ We solve this problem ...
- 渐变背景 css3渐变效果及代码
渐变背景及代码 http://uigradients.com/#Behongo
- 如何从oc中去获取一个私有的变量.....
运行时 的用法 1.定义的一个类,里面有一个私有变量mt_,并且在初始化值为"HaHa Ha ".@interface Mobj : NSObject {@privateNSStr ...
- 微信 关闭手机微信内置浏览器的js
WeixinJSBridge.call('closeWindow');
- RPi 2B USB 远程桌面
/******************************************************************** * RPi 2B USB 远程桌面 * 说明: * 用作废的 ...
- C++调试技巧
编号:1010时间:2016年5月13日11:15:20功能:C++调试技巧http://www.cnblogs.com/lidabo/p/3631055.html
- Maven构建项目速度慢问题解决
Maven项目进行构件的时候速度会很慢,由于maven每次进行创建的时候回去网上下载artheType-catalog.xml文件,而且,现在这个文件比较大,已经接近5M的大小,所以,在网速不好的情况 ...
- JAVA存取PG大对象类型OID数据
转载地址:http://my.oschina.net/liuyuanyuangogo/blog/151537 pg用大对象存储二进制数据的老文档:http://jdbc.postgresql.org/ ...