2 hypnos0928 Hypnos0928 于 2014.11.21 09:22 提问

ASP.NET怎么样不通过session统计在线人数

我们家网站sessionmode是StateServer,不会进入Session_end方法,现在客户要求做一个统计在线人数的功能,该怎么做??

4个回答

showbo
showbo   Ds   Rxr 2014.11.21 10:10

建立一个数据库表,记录sessionid和开始时间,session_start的时候表中写入sessionid和开始时间,并且执行下删除语句(开始时间大于30分钟的记录,这个间隔自己定了),然后更新下application计数。

用户每次访问页面的时候更新sessionid对应的开始时间,防止误判断(>30分钟)

通过数据库控制,效率不是很高~

q107770540
q107770540   Ds   Rxr 2014.11.21 10:53

客户端保持AJAX心跳,指定时间内和服务器通信一次 保持在线
这样即可统计真正的在线人数

caozhy
caozhy   Ds   Rxr 2014.11.21 13:19

无论什么方法,都只能大致统计在线人数,因为http是无状态的。你可以增加一个用户最后活动时间的字段,在每次页面请求的时候刷新它,在用户注销的时候清空它。而将问题转化为,查找最后活动时间在多少分钟之内的用户数。

jinfengyiye
jinfengyiye   2014.11.21 13:37

数据库或者文件记录一下吧.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ASP.NET中利用Application和Session统计在线人数、历史访问量
通常在整个过程中,大多数人对Application_End()这个事件的疑问是最大的,因为如果您只是在VisualStudio上做的测试的话,关闭系统时,没有触发Application_End()事件,新的数据也就没有被写入到数据库中。那么Application_End()究竟在什么时候才会被触发呢 ? 想弄明白这个问题,需要将程序发布,这里以IIS为例,用IIS发布了程序之后运行,当想要触发Application_End()事件把最新的历史访问量写入到 数据库中时,需要在IIS中关闭此程序
asp.net 使用Application和Session对象统计在线人数
asp.net 使用Application和Session对象统计在线人数   使用Application和Session对象,结合全局配置文件Global.asax和站点配置文件Web.config,设计一个能统计当前在线人数的web应用程序。程序运行时显示如图1所示: 第一步:新建Global.asax文件,Global.asax里面的代码:         void
asp.net 在线人数统计,页面访问量 Application ,session
1.新建网站,添加几个窗体。webForm1.aspx ,ViewStateForm.aspx2.在网站的根目录下添加全局应用程序类“Global.aspx” 。(重要)3.在“Global.aspx” 有固有的格式和会话信息结构。4.在“Global.aspx”中各个函数中添加处理代码。详细如下:        void Application_Start(object
依赖于session的在线人数统计
最近工作中遇到一个问题, 在做在线人数统计时.我们实现了HttpSessionListner,HttpSessionAttributeListener里面的attributedAdded()方法和attributeRemoved()的方法以及sessionDestroyed(),来操作一个map,将登陆的用户信息放入到map里面,用户退出时,再从map里面移除. 生产环境是在websphere
Session实现统计在线人数
一 新建一个类 package com.session; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class SessionListener implements HttpSessionListener {
asp.net统计在线人数
统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率。现在,我们就介绍一个简单明了的方法来统计在线用户的多少,该方法的特点就是充分的利用了ASP.NET的特点,结合global.asax文件,用Application和Session巧妙的实现在线用户的统计,由于程序中只用到一个Appli
【ASP.NET】——统计在线人数、历史访问人数
先介绍一下,在设计过程中,用到的Application和Session方法:
Asp.Net 在线(登录)人数统计
对于Web开发来说,统计访问或登录系统的人数是一件重要且常见的工作。 统计的主要方法一般是应用Application和Session来保存在线人数。这里介绍的例子是可以满足对访问系统,以及通过用户名密码登录系统的人数的统计,同时,也可以满足由于等待Session过期后才能统计,才能将在线人数减少的问题,当直接关闭浏览器时,立即减少人数,从而实现相对准确的统计值。开始吧~ 1、配置Web
asp.net在线人数的统计
asp.net在线人数的统计 在线人数统计
asp.net 实现在线人数统计
在解决方案资源管理器中添加新项,Global.asax,其中代码如下: void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 Application["count"] = 0; } void Application_End(ob