asp.net mvc 项目如何统计在线人数?

 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
a274355068
2015-04-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:7754
采纳率:92%
帮助的人:777万
展开全部
统计在线人数,你就需要对不同IP访问你的网站的人记录新session +1一次

如果这个人退出了,会话关闭,session关闭,-1

写在Globle里

protected void Application_Start(Object sender, EventArgs e)//当前应用程序启动这件事会发生
{

SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select Count(*) from UserInfo", con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
Application["total"] = count;//Application是个全局变量,每个会话都可对他操作
Application["online"] = 0;

AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}

protected void Session_Start(Object sender, EventArgs e)//客户端一连接到服务器上,这个事件就会发生
{
Session.Timeout = 1;
Application.Lock();//锁定后,只有这个Session能够会话
Application["total"] = (int)Application["total"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();//会话完毕后解锁
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();
}
追问
这个是根据Session的状态来统计的吧?是不是不是实时的?
追答
这个都不可能做到实时的
无论怎么做

除非做一个 心跳设计
每秒自动 抛数据
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-08
展开全部
项目如何统计在线人数,这样统计。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式