【问题标题】:PHP server detecting inactivityPHP服务器检测不活动
【发布时间】:2018-11-25 18:11:15
【问题描述】:

所以我有一个看起来像这样的 PHP 服务器

<?php 
 $session = $_POST['session'];
 $data = $_POST['data'];
 ... save and process data ...
 echo "got it";
?>

本质上,我每秒将获取大约 10 次数据,但我想检测会话是否超过一分钟处于非活动状态并记录有关它的日志。我该怎么做呢?谢谢。

【问题讨论】:

  • 这在服务器上不容易完成,因为除非客户端发送请求,否则 PHP 脚本不会运行。如果 PHP 没有运行,它就不能检查任何东西。
  • 如果保存的数据包含时间戳,您可以在服务器上运行一个 cron 作业,查找所有时间戳早于一分钟的记录。这意味着对应的客户端一直处于空闲状态。

标签: php server


【解决方案1】:

在您执行的每个数据插入中,在其旁边放置一个时间戳。

例如数据库:

1    Sample Data    2018-11-26 00:12:00
2    Sample Data    2018-11-26 00:12:05
3    Sample Data    2018-11-26 00:14:00

现在在您的 PHP 脚本之上,在任何传入的插入之前,获取最后一行并检查日期。

例如

 $lastRowTime = date_create($row['timstamp']);
 $timeNow = date_create();
 $diff = (date_timestamp_get($timeNow) - date_timestamp_get($lastRowTime)) / 60;

 if ($diff > 1) {
      // it's been 1+ minute since last post, do your logging here...
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多