2012-02-26 112 views
3

是否可以使用其IP地址來檢查訪問者是否仍在線?如何檢查訪客的IP地址是否仍然有效或聯機?

我已經創建了一個javascript和php來檢查訪問者的IP地址,當他們使用onLoad和onBeforeUnload事件打開我的一個頁面時。但有些情況下,我的腳本無法檢測到訪問者是否仍在打開我的網站。由於onBeforeUnload一直不可靠。

在這種情況下,我想知道是否有其他方法可以檢測訪問者是否仍在線。

如果訪問者仍然打開頁面,但沒有閱讀它,因爲他/她正在閱讀其他網站或運行其他程序,我仍然會認爲他/她在線。

如果訪問者關閉了瀏覽器,但我的腳本未能檢測到它的卸載事件,我想知道他/她是否仍在線。

對於我來說PHP或javascript是可以的。

回答

10

您應該通過ajax創建「ping」(發送請求,可能爲空)服務器的JavaScript代碼。這個請求應該反過來「標記」那些在PHP中活動的用戶(可能在數據庫中,或者你使用的任何存儲方法)。你可以參考你的存儲來查看用戶是否在線。

或者,您可以在沒有AJAX的情況下使用它,但是您需要在站點中對每個頁面請求(每次穿過頁面)執行「ping」操作。以這種方式,只要他登錄,PHP就會「標記」訪問的每一頁的用戶。

如果該用戶被標記爲活動超過某個閾值(比如說30分鐘),請將其視爲離線。

您不需要此功能的IP地址。你只需要知道用戶仍被標記爲在線。

+1

所以downvoter,你能說什麼? – Joseph 2012-04-21 10:10:26

2

如果訪問者關閉了瀏覽器,但我的腳本未能檢測到它的卸載事件,我想知道他/她是否仍在線。

這是完全不可能的。
我懷疑是否有任何理由去做。

+0

當然有一個原因,許多網站做類似的事情。考慮留言板,他們通常會顯示有多少用戶在線,或者在過去5-10分鐘內一直處於活動狀態。我看到很多網站都告訴有多少用戶是內聯的。 不知道這些人何時離線,將無法獲得準確的在線用戶數。 還有幾種方法可以做到這一點,比其他方法更好,但它當然可以完成。 – 2012-04-05 06:08:57

+0

大聲笑,這是一個虛構的數字,只是粗略估計從最後用戶的活動:)沒有人需要一個準確的計數這個無用的數字。 – 2012-04-05 07:03:18

2

據我所知,最可靠的做法是使用now.js作爲Node。您可以設置一個簡單的服務器,並監聽連接和斷開連接。當被觸發時,您可以將需要的數據發送到您的php,或者在節點中處理它。

相關問題