所以我正在编写类似于聊天应用程序的东西,并且需要一种方法来检测用户何时不再活跃。本质上,我需要让应用程序的其他用户知道,如果用户X离开页面或关闭浏览器,他们就会注销。除了"我在15分钟内没有收到用户X的请求,所以我认为他出局了"之外,服务器端脚本还有什么办法解决这个问题吗?
正如他们在评论中的链接中所说,您需要使用AJAX。最简单的方法(在我看来)是使用JQuery,下面是一个例子:
$(document).ready(function(){
window.setInterval(function(){
initiateSessionCheck();
5000);
function initiateSessionCheck() {
$.ajax({
type : 'POST',
url : 'sessioncheck.php',
success : function(data){
//success
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//error do something they are no longer active
}
});
}
});
现在,在您的sessioncheck.php文件中,您将想要执行此
session_start();
if (!$_SESSION) { //you could check a session variable explicitly like $_SESSION['user_id'] != ''
$return['error'] = true;
} else {
$return['error'] = false;
}
echo json_encode($return);
这是基本的,但它应该起作用!