在线人数的统计
2011-03-07 17:06
113 查看
统计在线人数,在论坛或聊天软件中用的比较多,无论是在线人数的统计还是网站被访问的总数,在这里我们都要用到Application来保存状态,这点不用多说,在asp.net中我们可以使用全局应用程序Global.asax来实现这些功能,下面是自己简单写的一个实例:
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
Application["count"] = 0;
}
void Application_End(object sender, EventArgs e)
{
//在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码
Application.Lock();
Application["count"]= (Convert.ToInt32(Application["count"])+1).ToString();
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["count"] = (Convert.ToInt32(Application["count"]) -1).ToString();
Application.UnLock();
}
</script>
在配置文件中web.config也需要配置以下信息
<sessionState mode="InProc" timeout="1"></sessionState>
session的时间设置为1,这样当用户关闭浏览器的时候,也能很快从application中移除
上面用到了Application.Lock()和Application.UnLock(),主要是为了防止同时多个用户一起访问,这样的话如果不这样处理,就会被当做一个用户来处理,所以要先锁住,一个一个统计;
有时候还要考虑到服务器端点或死机的情况,可以把访问数记录下来,然后读取,在这里就不在多说了,自己慢慢研究吧
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
Application["count"] = 0;
}
void Application_End(object sender, EventArgs e)
{
//在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码
Application.Lock();
Application["count"]= (Convert.ToInt32(Application["count"])+1).ToString();
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["count"] = (Convert.ToInt32(Application["count"]) -1).ToString();
Application.UnLock();
}
</script>
在配置文件中web.config也需要配置以下信息
<sessionState mode="InProc" timeout="1"></sessionState>
session的时间设置为1,这样当用户关闭浏览器的时候,也能很快从application中移除
上面用到了Application.Lock()和Application.UnLock(),主要是为了防止同时多个用户一起访问,这样的话如果不这样处理,就会被当做一个用户来处理,所以要先锁住,一个一个统计;
有时候还要考虑到服务器端点或死机的情况,可以把访问数记录下来,然后读取,在这里就不在多说了,自己慢慢研究吧
相关文章推荐
- SQL分页法和统计在线人数
- 简单的网站在线人数统计
- Servlet监听器——实现在线登录人数统计小例子
- 不用global.asa讨论一下ASP在线人数统计的好方法.
- 网站在线访问人数统计并计算停留时间
- Asp.Net实现在线人数统计 (转)
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- ASP.NET在线人数和访问人数总量统计
- .Net如何统计在线人数
- jsp简单实现统计在线人数
- HttpSessionBindingListener接口在线人数统计
- 统计在线人数的思路
- 事件监听之统计当前在线人数案例
- asp.net 在线人数统计,页面访问量 Application ,session
- jsp+servlet+java 实现统计在线人数,在线用户
- php文件实现在线人数统计
- 用session监听器统计在线人数和在线人列表
- Application--统计在线人数
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 统计java网站访问量和在线人数