我有一个用PHP和Javascript编码并使用MySQL的shoutbox。 它的功能如下。我们有一个refresh.txt文件,用于检查新的喊叫声,如果有新的喊叫声,则会调用数据库来获取新的喊叫声。
现在我们都知道shoutbox的主要问题是CPU使用率。 所以我想知道是否有办法计算活跃用户,而不会在服务器上增加太多额外的压力。 也许通过Javascript?
不幸的是,我没有任何源代码可供使用,因为它将在那里添加新功能。 任何帮助都会很棒,谢谢。
答案 0 :(得分:1)
只需一个活动柜台。只计算过去4分钟内活跃的人。然后使用JS每10秒从您的服务器请求该号码。
否则,我宁愿使用像http://www.shoutmix.com
这样的第三方产品答案 1 :(得分:1)
这些用户是否使用PHP会话登录?如果是这样,只需在会话保存目录中count the number of active session files。这不是CPU密集型的,不涉及数据库调用。
此外,如果您仍然为此避免数据库调用,则可以让私有文件跟踪不同的客户端(例如IP地址)以及他们上次从服务器请求资源的时间。有关此in this question的更多信息。但是,如果多个用户从同一个网络(例如学校或企业)访问,则会出现逻辑错误,解决方案是使用Cookie或会话记录各个用户。
您可能也对long polling(Javascript)感兴趣。它保持与服务器的连接打开,偶尔检查是否有新数据。在计算没有,本身,会话或cookie的活跃用户数时,这非常有用。