關於判斷使用者是否線上的問題!!!

來源:互聯網
上載者:User
以前一直在聽說如何判斷使用者是否線上這個話題,一直沒得要領,今天特意向大家請教下!!謝謝各位!!


回複討論(解決方案)

把session記錄到資料庫,同時標示出使用者的id號,判斷使用者是否線上就看這個id號對應的session資訊是否到期。不知道我說的對不對,歡迎樓下各位大神拍磚。

去看下session的用法就明白了

主要是判定最後啟用時間,設定一個較短的預設線上時間,如果在這個時間內沒有活動記錄則認為不線上;相反則認為線上。

是我沒說清楚,首先當使用者通過正常渠道,就是點擊退出,這種的話判斷使用者線上不線上就不用多說。我想問的是當使用者沒點擊退出而是直接關閉了瀏覽器,那我怎麼知道使用者還是否線上。

請大家再說下自己的看法,O(∩_∩)O謝謝

把session記錄到資料庫,同時標示出使用者的id號,判斷使用者是否線上就看這個id號對應的session資訊是否到期。不知道我說的對不對,歡迎樓下各位大神拍磚。

請看樓下補充

去看下session的用法就明白了

請看樓下補充

不是一樣嗎,怎麼儲存的就怎麼判斷。

不是一樣嗎,怎麼儲存的就怎麼判斷。

關鍵是時間設定的問題

1、為什麼要判斷使用者是否線上?
既然使用者不線上,那麼他就不會向你發出請求。
除非你有顯示線上人數的需求
2、什麼時候判斷使用者是否線上?
當你需要顯示線上人數時,自然是至少有一個使用者發出了請求
只在響應該請求時統計線上人數即可
如果沒有任何人訪問你的網站,即使統計了又有什麼用?
3、如何判斷使用者線上?
無論是否註冊使用者,只需統計有效 session 的個數就可以了
如果你覺得預設的 session 失效期 1440 秒太長了,你可以按你的需要調整

那麼你怎麼判斷使用者是否有活動呢?每隔一段時間請求下伺服器?那這個請求不是要在每個頁面裡都要加嗎。。。

這個邏輯是這樣,不是請求,因為你的每一個頁面都要去判斷使用者是否線上吧?每個頁面都會去讀取session資訊的,在讀取的時候更新這個時間。

可能有需要知道線上好友的需求,但是也是需要一個時間段的

1、ajax定一個 時間段發送到服務端,證明線上,超過則不在

2、設定一個 時間段內,使用者未訪問頁面,發送請求,斷開會話,同時知道不線上狀態

總之,不可能即時知道使用者是否線上,一定需要一個合理的時間段的

這個要看你是如何記錄登陸資訊的,如果只是簡單的session,只需要判斷使用者資訊對應的session是否存在或者到期就行了,其他思路也都差不多了,反正都是個判斷是否有效問題!

看了大家的回複,瞭解了一些,但是我還是沒想通。因為我做的就是想通過判斷使用者是否線上,然後當他不線上的時候可以自動結束。

然後大家看下,這種的話有什麼思路??


那麼你怎麼判斷使用者是否有活動呢?每隔一段時間請求下伺服器?那這個請求不是要在每個頁面裡都要加嗎。。。

這個邏輯是這樣,不是請求,因為你的每一個頁面都要去判斷使用者是否線上吧?每個頁面都會去讀取session資訊的,在讀取的時候更新這個時間。

看樓下

可能有需要知道線上好友的需求,但是也是需要一個時間段的

1、ajax定一個 時間段發送到服務端,證明線上,超過則不在

2、設定一個 時間段內,使用者未訪問頁面,發送請求,斷開會話,同時知道不線上狀態

總之,不可能即時知道使用者是否線上,一定需要一個合理的時間段的

對於用ajax非同步請求這種的話,需要把那段代碼加在每個頁面裡的吧?

設定時間段看使用者是否訪問頁面這裡又怎麼實現下?沒想到。。。。

然後看下我說的那個再,謝謝

記錄使用者最後訪問時間
檢查使用者最後訪問時間與目前時間的間隔,若超出約定的範圍,則視為不線上

判斷使用者甲是否線上的工作是在使用者乙活動期間進行的
判斷在伺服器端獨立進行,與用戶端無關

你可以使用一個記憶體表來更新使用者的最後操作時間,然後使用Cron來定時執行清理使用者的操作,這樣表裡的就是最近線上的使用者。

我們也可以用關閉瀏覽器事件吧!

我覺得一樓收的就很詳細了

恩 看了大家的回複,思路有一點啦,回頭再弄弄看下效果,感謝各位了O(∩_∩)O哈! 時間比較緊,一直沒時間回複大家!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.