如何在我的网站上获得用户在线状态(实时)
How to get the user online status (real time) in my website
我想在我的网站上显示哪个用户都在线(实时;就像任何聊天模块一样)。我正在使用下面提到的脚本来做这件事。
HTML:
<body onbeforeunload="Unload();" onmousedown="checkfunction();">
</body>
Javascript:
var doClose = false;
document.onkeydown = checkKeycode;
function checkKeycode(e){
var keycode;
if (window.event)
keycode = window.event.keyCode;
else if (e)
keycode = e.which;
if(keycode == 17 ){
doClose = true;
}
}
function checkfunction(){
doClose = true;
}
function Unload(){
if(!doClose){
set_user_log_out(<?php ehco $u_id ?>);
}
}
set_user_log_out
功能用于设置用户注销。
在上面提到的java脚本中,我想考虑下面提到的场景。
- 用户可以在浏览器中打开多个选项卡。或者,他可以打开多个浏览器(仅限同一个浏览器)
- 用户可以关闭一个选项卡并访问另一个选项卡
- 用户可以点击一个选项卡,然后简单地关闭另一个选项卡
- 用户可以在不单击注销选项的情况下关闭浏览器
- 用户可以使用键盘快捷键关闭浏览器(例如ctrl+F4)
所以,我也在检查键代码(哪个键是用键盘按下的)。但是,此代码存在一些问题。下面提到了它们。
- 我没有找到任何解决方案来获得多个密钥的密钥代码(例如ctrl+F4)
- 考虑到两个选项卡,如果我键入(同一网站的)其他url,页面将继续加载到firefox中
- ctrl+r不能完全工作
- 有时,当试图访问网站的其他页面时,它只需执行函数
set_user_log_out()
(仅发生在firefox中)
请建议我需要什么。我还浏览了下面提到的网址。
如何跟踪我的网站用户的在线状态?
但是上面url中描述的函数没有考虑到我的场景。
您应该在数据库中保留活动会话的列表以及上次活动的时间。
每次向服务器发出请求时,您都应该更新发出请求的特定会话的最后活动时间。"在线用户"是这张表上的计数,比如说,最后一次活动<1分钟前
在注销功能中,您还应该从此表中删除特定会话
要实现Jerzy给你的"实时"想法,你需要添加一些ajax。使用ajax,您可以在不离开页面的情况下查看在线用户。此外,你可以在数据库中添加一个离开状态,这意味着:检查用户是否仍在页面上,但没有执行任何操作等。这是一个非常简单的方法:)
我有一个php脚本,它将所有在线用户存储在json文件中。。然后我使用jquery将每个用户存储在li-table
:中
function getAllUsers(){
$.getJSON('online.php',function(data){
$.each(data, function(i, data){
if(data.user_status == 'online') {
$("#online-user")
.append("<tr><td>" + data.user_id + "</td><td>"
+ data.user_name + "</td><td>"
+ data.user_status + "</td></tr>)");
}
});
})
}
相关文章:
- 如果在线检查期间发生电源故障,我们如何更新用户再次登录门户时的剩余时间
- 从Javascript运行PHP文件来检查在线用户:表示未登录的用户是
- 如何在我的网站上获得用户在线状态(实时)
- 在xmpp多聊天中,管理员角色只授予创建房间的在线用户成员资格
- 检查用户是否在线
- 如果服务器崩溃,如何跟踪用户的“在线”状态
- 在线投票应用程序.如何避免同一用户的重复投票
- 在MeteorJS中直接向在线用户发送消息
- SignalR用于跟踪在线用户和聊天
- 高级用户/员工在线活动跟踪
- 无法使用本地主机上的node.js向不在线的用户发送消息
- XEP-0133:管理员请求获取所有在线用户列表
- node . js,套接字.Io:检查用户是否在线或离线
- 套接字.IO是跟踪用户是否在线的最好方法
- Firebase -统计在线用户
- 使用QuickBlox JS SDK列出房间在线用户的数量
- 在Ruby on Rails 3应用程序中查看并与您网站上当前的在线用户交谈
- 获取在线用户脸书 API
- 自动刷新在线用户表而不刷新整个页面
- 使用Javascript与ejabberd一起获取在线用户列表