我想在我的網站上顯示所有用戶都在線(實時;如同任何聊天模塊)。我正在使用下面提到的腳本來做到這一點。如何在我的網站上獲取用戶在線狀態(實時)
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()」(發生在只有火狐)
請建議我這樣做的要緊。我也經歷了下面提到的網址。
How to Track the Online Status of Users of my WebSite?
但在上述網址所描述的功能,不考慮我的情況。
在此先感謝。
「活動會話」存儲在麗表..想我已經打開兩個標籤並點擊「註銷」選項從一個標籤,這將是什麼情景? – Debashis 2012-07-19 09:37:43
如果是相同的用戶(同一個會話),比用戶在這兩個過程中的退出 - 你應該增加檢查每一個X秒,如果用戶仍然處於登錄狀態 - 如果不是 - 重定向用戶登錄 – 2012-07-19 10:28:20
頁而且,假設登錄用戶只需關閉瀏覽器(無需點擊註銷選項)。那麼,哪些狀態(可用/註銷)將被檢索以及如何? – Debashis 2012-07-19 11:06:55