我创建了一个chatroom.php,我创建了target =“_ blank”,只要用户点击房间的链接,就会将用户引导到适当的房间。此外,当用户点击该链接时,我将用户的昵称存储在数据库中,以显示该房间中用户的昵称。但是,当用户关闭房间的窗口时,它仍然显示用户在线,这是不需要的。我需要一种方法,每当用户关闭一个房间,如聊天室?name = book,我将从那个房间删除他/她。我希望我清楚自己。对于某些房间,它应该像logout.php一样工作。我怎么能这样做?
由于
答案 0 :(得分:2)
查看onBeforeClose
事件。
window.onbeforeclose = function(){
// make a call to PHP saying user is singing off.
};
或者你可以使用“空闲”超时(如果用户在X分钟内没有说任何内容,则自动注销。)
答案 1 :(得分:1)
要做到这一点, 您需要创建自动任务,以使用 SESSION_Checking 或ACTIVITY_Monitoring检查仍在CHAT ROOM中的用户。 一旦用户关闭窗口,TASK将检查并进行必要的更改。
使用SESSION Checking在PHP中实现:
每次用户登录时设置$_SESSION['online'] = 1;
- 会话变量仅为此用户设置,因此您不必担心冲突。但是,如果要向所有用户显示此信息,您应该将用户的上次操作时间保存到数据库中。 if($_SESSION['online'] == 1;) mysql_query('UPDATE user SET last_activity=NOW() WHERE id='.$user_id);
或类似的。
通过这种方式,您可以在聊天应用程序中跟踪在线用户。