如何计算当前在线的经过身份验证和匿名的用户?

How to count authenticated and anonymous users currently online?

我刚在网上找到查询。我想弄清楚方法。

只有爱好者愿意解决这个问题(小心)

我想知道有多少匿名用户在线。 服务器没有先验概念"online"。 你可以人为地定义术语"session",然后将会话数视为代表在线用户数。 如果您这样做并使用 Zope 会话来实现您的 "session" 概念,那么您可以查看 "session_data_manager" 以找出有多少会话可用。 这对我来说绰绰有余,知道还有多少会话可用。如果我可以得到每个活动会话的 ID 列表,我可以 轻松构建我需要的列表(通过 getSessionDataByKey() 方法)... 我试过类似的东西:

但甚至 "manager" 也不允许执行该操作。

甚至尝试外部方法:

def activesessionlist( self):
    return self.temp_folder.keys()

没有任何效果,而是:

def sessionperiod( self):
    return self.temp_folder.getPeriodSeconds()

工作正常。

你能帮我找出活动会话列表吗?这是 快把我逼疯了...

Reference

如果您想检查有多少匿名用户在线,您必须为每个用户创建一个会话,无论是匿名用户还是经过身份验证的用户。创建会话后。之后,您可以使用 "session_data_manager"

计算在线用户数
def activesessionlist(self):
  # GET Session Data Manager Object
  sdm = self.context.session_data_manager
  # Create Session if it's not created
  session = sdm.getSessionData(create=True)
  # Get Container where all the session object is stroed
  container = sdm._getSessionDataContainer()
  # Get Total Count of Active Session
  active_users = len(container.keys())
  return active_users