.net网站统计在线人数问题

问题描述

我家网站不进入session_end方法,现在客户需要做一个在线统计人数的功能,而且想要精确一点的,有大神能提供一下思路么?

解决方案

解决方案二:
referhere:
解决方案三:
应用实例:最后一个截图。文章最后一个链接
解决方案四:
什么session_startsession_end都是假的LZ别被骗了..难道我不关浏览器强制关机也能触发服务器的session_end吗?别逗了...所以那东西只是初略的统计下,并且实时性不强要想准确,客户端一定要有一个<长连接>.否则别谈什么"精确"
解决方案五:
引用3楼diaodiaop的回复:

什么session_startsession_end都是假的LZ别被骗了..难道我不关浏览器强制关机也能触发服务器的session_end吗?别逗了...所以那东西只是初略的统计下,并且实时性不强要想准确,客户端一定要有一个<长连接>.否则别谈什么"精确"

是啊,考虑到用户直接关闭浏览器或者直接拔电源的情况。的确不能做到精确,如果通过socket来做链接判断,用户打开第二个页面的时候又会多一个链接。所以现在很苦恼
解决方案六:
登陆时把用户名写数据库里,并写入当前时间然后做个心跳,定时更新当前时间查询的时候查询时间在某个范围内的(超时不更新的不统计)
解决方案七:
:.net网站统计在线人数问题//记录在线人数<asp:LabelID="lblCount"runat="server"></asp:Label>//显示在线人数protectedvoidPage_Load(objectsender,EventArgse){lblCount.Text="您是第"+Application["count"].ToString()+"位访客";}//触发Session_Start事件调用Global.aspx全局类初始化时间记录来访人数<%@ApplicationLanguage="C#"%><scriptrunat="server">voidApplication_Start(objectsender,EventArgse){//在应用程序启动时运行的代码Application["count"]=0;}voidApplication_End(objectsender,EventArgse){//在应用程序关闭时运行的代码}voidApplication_Error(objectsender,EventArgse){//在出现未处理的错误时运行的代码}voidSession_Start(objectsender,EventArgse){//在新会话启动时运行的代码Application.Lock();Application["count"]=(int)Application["count"]+1;Application.UnLock();}voidSession_End(objectsender,EventArgse){//在会话结束时运行的代码。//注意:只有在Web.config文件中的sessionstate模式设置为//InProc时,才会引发Session_End事件。如果会话模式//设置为StateServer或SQLServer,则不会引发该事件。Application.Lock();Application["count"]=(int)Application["count"]-1;Application.UnLock();}</script>
解决方案八:
.net网站统计在线人数为什么要用Application?用RedisorMemcached啊!使用Application统计在线人数是坑爹中的战斗机。1、Application是非常耗资源的,尤其是访问人数一多的情况下,会爆卡。2、Application在服务器一重启or断电的情况下,是会丢失的为什么用Redis?1、高性能,每秒钟可以读取8100次,写11000次2、高可用,在宕机or服务器重启的情况下,不会影响到统计结果3、支持分布式,可以部署在单独的服务器上面。
解决方案九:
还少写了个0,Redis是每秒钟可以读取81000次,写110000次
解决方案十:
引用5楼Z65443344的回复:

登陆时把用户名写数据库里,并写入当前时间然后做个心跳,定时更新当前时间查询的时候查询时间在某个范围内的(超时不更新的不统计)

你有没有考虑并发量很大的情况!!!!
解决方案十一:
引用7楼zouyujie1127的回复:

.net网站统计在线人数为什么要用Application?用RedisorMemcached啊!使用Application统计在线人数是坑爹中的战斗机。1、Application是非常耗资源的,尤其是访问人数一多的情况下,会爆卡。2、Application在服务器一重启or断电的情况下,是会丢失的为什么用Redis?1、高性能,每秒钟可以读取8100次,写11000次2、高可用,在宕机or服务器重启的情况下,不会影响到统计结果3、支持分布式,可以部署在单独的服务器上面。

虽然application是比较常用的方式,但也是非常耗资源的;建议换种方式,几种方式比较一下,再决定用哪种方式;

时间: 2024-08-18 08:45:11

.net网站统计在线人数问题的相关文章

PHP如何统计在线人数

统计|在线|在线人数 在论坛里有人问我如何统计在线人数?我也不知道什么是最好的方法.下面是本站的实现的原理,我把它写出来,供大家参考.这只是我的方法,肯定不是最好的,还希望高手们予以指正. 其实,要真正统计同时在并发在线的人数,是一件不太现实的事,这是因为HTTP协议是种无状态的协议.当客户端向服务器发出一个请求时,服务器会马上建立一个新的TCP/IP连接,在该会话结束后,如页面完全载入后,这个连接就关闭了.一般来说,在线人数指的定是在一定时间段内同时访问站点的人数,而不是基于HTTP协议的并发

如何统计在线人数

  在论坛里有人问我如何统计在线人数?我也不知道什么是最好的方法.下面是本站的实现的原理,我把它写出来,供大家参考.这只是我的方法,肯定不是最好的,还希望高手们予以指正. 其实,要真正统计同时在并发在线的人数,是一件不太现实的事,这是因为HTTP协议是种无状态的协议.当客户端向服务器发出一个请求时,服务器会马上建立一个新的TCP/IP连接,在该会话结束后,如页面完全载入后,这个连接就关闭了.一般来说,在线人数指的定是在一定时间段内同时访问站点的人数,而不是基 于HTTP协议的并发连接数. 让我们

统计在线人数 session-Web项目,统计在线人数。。

问题描述 Web项目,统计在线人数.. Web项目,统计在线人数,页面刷新在线人数,页面刷新怎么让后台session定时session过期起作用??? 解决方案 你好,这是我那会学习的小Demo你可以看看: 1) Servlet监听统计网站历史访问人数:http://blog.csdn.net/itjavawfc/article/details/37654749 2)Servlet监听器实现网站在线人数统计:http://blog.csdn.net/itjavawfc/article/detai

jsp网站开发-jsp网站统计登入用户人数

问题描述 jsp网站统计登入用户人数 怎样在一个jsp网站中统计在线人数?就是当用户通过确认用户名和密码进行正确登入的时候,显示当前在线用户数量. 解决方案 登录时将记录在表里,然后count下多少条就OK啦,退出时别忘记去掉就行了

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

问题描述 ASP.NET怎么样不通过session统计在线人数 我们家网站sessionmode是StateServer,不会进入Session_end方法,现在客户要求做一个统计在线人数的功能,该怎么做?? 解决方案 建立一个数据库表,记录sessionid和开始时间,session_start的时候表中写入sessionid和开始时间,并且执行下删除语句(开始时间大于30分钟的记录,这个间隔自己定了),然后更新下application计数. 用户每次访问页面的时候更新sessionid对应的

PHP实现统计在线人数功能示例_php技巧

本文实例讲述了PHP实现统计在线人数的方法.分享给大家供大家参考,具体如下: 我记得ASP里面统计在线人数用application 这个对象就可以了.PHP怎么设计? PHP对session对象的封装的很好,根据HTTP协议,每个范围网站的访客都可以生成一个唯一的标识符 echo session_id(); //6ed364143f076d136f404ed93c034201<br /> 这个就是统计在线人数的关键所在,只有有这个session_id 也就可以区分访问的人了.因为每一个人都不同

PHP如何统计在线人数

在论坛里有人问我如何统计在线人数?我也不知道什么是最好的方法.下面是本站的实现的原理,我把它写出来,供大家参考.这只是我的方法,肯定不是最好的,还希望高手们予以指正. 其实,要真正统计同时在并发在线的人数,是一件不太现实的事,这是因为HTTP协议是种无状态的协议.当客户端向服务器发出一个请求时,服务器会马上建立一个新的TCP/IP连接,在该会话结束后,如页面完全载入后,这个连接就关闭了.一般来说,在线人数指的定是在一定时间段内同时访问站点的人数,而不是基于HTTP协议的并发连接数. 让我们先来看

php使用Session和文件统计在线人数_php实例

<?php /* @ PHP 在线人数统计程序 Copyright (c) by Pader 1:25 2009年1月7日 How to use it: <script src="online.php"></script> note: 一般独立在线人数统计程序都是统计在线的IP数,而这并不准确 例如局域网的访问者,比如公司,学校机房和网吧,虽然内网IP不同,但是外网IP都是一样 如果同一个局域网的无论多少人人访问你的网站则只被认为是一个人 这个小巧的程序解

通过网站统计或系统监视器查看IIS并发连接数_win服务器

如果要查看IIS连接数,最简单方便的方法是通过"网站统计"来查看,"网站统计"的当前在线人数可以认为是当前IIS连接数.然而,"网站统计"的当前在线人数统计时间较长,一般为10分钟或15分钟,再加上统计技术及统计机制的问题,从而会产生或多或少的统计误差. 如果要想知道确切的当前网站IIS连接数的话,最有效的方法是通过windows自带的系统监视器来查看.这正是本文要介绍的方法. 一.运行-->输入"perfmon.msc"