我该如何知道我的网站有多少在线用户?

5

我将Session["UserID"]的值设置为已登录用户的ID,这样我就可以知道用户是谁。但我想知道所有登录了我的页面的用户,并显示他们的列表。

3个回答

6
一般来说,你需要询问“如何知道谁在过去x分钟内活跃了”。在每个页面条目上记录他们的最后活动时间,然后查询该列表以查看谁在过去几分钟内一直处于活跃状态。您还可以扩展该功能并记录他们最后访问的页面,以了解有多少人在线上,有多少人在特定页面上。您可以通过向数据库中的用户表添加仅几个字段来完成此操作。一个是lastActivityTime,另一个是lastVisitedLocation。

2
您与已登录用户主要面临的问题是,没有保证的方法确保数字准确性。如果有人关闭或杀死他们的浏览器,或者失去电源,您只有在他们的会话过期时才能知道他们未登录。因此,默认情况下为20分钟...我并不真正赞成将这些信息持久化到数据库中的想法,尽管它是有效的,但同样的问题仍然存在。您可以精确显示的是asp.net认为活动的会话数量,而不一定是仍在使用您网站的用户数量。Jonathan的答案是最好的妥协,因为它是一个时间点的度量,而不是一个保证的数字。

1

您可以使用数据库会话来跟踪已登录的用户,一旦开始使用数据库会话,跟踪就变得容易了。

在线用户数将只是表中记录数量的计数。

由于在会话表中为每个已登录用户都有记录,因此您还将能够获取已登录用户的名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接