Re: [請益]如何能夠記錄會員是否在線上的狀態

看板PHP作者 (深藍)時間15年前 (2009/02/16 00:06), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
要做到非常精準,就會有很高的 cost 通常論壇的做法,都是設定 session timeout 時間 在 session table 中,設定一個欄位,紀錄最後更新時間(取代您目前的0,1) ( session table 要用 HEAP 或 memory 類型 ) 會員每次連結到新頁面都會更新時間 並刪除最後更新時間 < ( now - timeout), 再將要刪除的人上線時間紀錄到 user table 這樣就可以知道誰還在線上 當然 timeout 設定越短越精準,但 cost 越高 用 ajax 在每頁重新整理也是外加選項之一,但他會導致使用者沒關網頁,閒置的誤差 要解決,可能就需要用 js 去偵測 body 的 mousemove, keypress 事件 再 ajax 回去 server ※ 引述《danielkimo (Daniel)》之銘言: : 各位板大好, : 不好意思小弟又來麻煩大家了, : 小弟目前正在寫一個會員系統, : 希望透過寫入資料表來記錄會員是否有在線上的狀態, : 當使用者login時,會在資料表欄位中記錄為1(表示為線上狀態), : 當使用者logout時,則資料表欄位會被改成0(表示離線狀態), : 但是很多使用者都不會按下logout,而是直接關掉視窗, : 那這樣不就沒有辦法正確判斷是否在線上了, : 同樣的概念如果用在記錄使用者上次登入的時間與使用者總共在系統上停留多久時間, : 好像都會有這樣的問題,不知道各位大大有沒有人知道要怎樣處理比較好呢 : 小弟感激不盡,謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.37.26

02/16 00:30, , 1F
推這篇
02/16 00:30, 1F

02/16 00:30, , 2F
HTTP非持續連線的最大缺點就是在判斷持續行為時...
02/16 00:30, 2F
文章代碼(AID): #19c3s5UZ (PHP)
文章代碼(AID): #19c3s5UZ (PHP)