问题就是我怎么记录用户在线和退出呢,实现用asp.net(c#),如果是统计用户数量比较好办
<script language="c#" runat="Server">
protected void Application_Start(Object sender, EventArgs e)
{
Application["user_sessions"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
Application.Unlock();
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
Application.Unlock();
}
</script>这样就行了,如果是用户登录时就放到一个临时表中可以,退出就直接从表中删除就可以了,但是用户登录了,没有按退出怎么办,那不是一生都在线啊, 不合理,看有没有办法解决这个问题?
<script language="c#" runat="Server">
protected void Application_Start(Object sender, EventArgs e)
{
Application["user_sessions"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
Application.Unlock();
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
Application.Unlock();
}
</script>这样就行了,如果是用户登录时就放到一个临时表中可以,退出就直接从表中删除就可以了,但是用户登录了,没有按退出怎么办,那不是一生都在线啊, 不合理,看有没有办法解决这个问题?
捕获其在不在线。采用Application不是最好的记录用户在线数量的方法。
一般可以将用户的登陆时间保存到数据库中,按照时间段来确定是否在线(二楼所说)
如果登陆时间过长,则判断为离开同时增加一个判断是否在线的标志位,要取在线数目的时候,就Sum这样的记录好了~~