2010-11-01 49 views
15

我不確定最簡單的方法是什麼。我需要能夠檢測用戶在我的網站上在線。因此,當人們查看線索或其他內容時,如果它們處於聯機或脫機狀態,則會在用戶名旁邊說出。在論壇索引底部,它會說出所有在線的用戶。檢測在線用戶?

什麼是最簡單的方法來做這樣的事情?我不確定是否需要每次頁面加載或運行時都會運行的Javascript。

謝謝:)

+3

不要使用Javascript來做到這一點。 – drudge 2010-11-01 21:46:36

+0

你正在使用哪個論壇和版本?如果預先製作了諸如IBP/InvisionFree或PHPBB等,那麼此功能通常已存在於您的論壇控制面板中。 – 2010-11-01 21:47:32

+3

我自定義編碼我自己的論壇。 :) – Cory 2010-11-02 00:15:03

回答

20
  • 有一個用戶表
  • 一個MySQL數據庫在其中保存「最後一次看到」時間制
  • 更新用戶表中的列上每一個頁面請求列
  • 在線或離線檢查時
  • ,檢查當前時間減去「上次上線」 - 時間比一些treshold大於你喜歡

編輯:如果您希望打開網站時閒置的人也可以在線顯示,您可以選擇每隔兩分鐘左右對服務器(請求一個空頁面)進行javascript「ping」。

+1

是啊,這可能是最好的辦法 – Breezer 2010-11-01 21:49:28

+0

正是我在想什麼。因爲我將有最後一次看到的時間。並設置在線上最後看到5分鐘左右。不知道這是否是最好的方法。 – Cory 2010-11-01 21:49:49

+0

您認爲最近一次看到的專欄應該何時更新?每頁加載? – Cory 2010-11-01 21:50:10

1

您需要持有某種「會話」表,您持有用戶以及他們訪問頁面的時間。

如果時間早了5分鐘,則用戶處於脫機狀態(並且該行可以被刪除)。 會話表中的其他用戶是「在線」的。