java Web 同一個用戶名不能同時登陸的思路

 

 

情況之一:第一個用戶等陸了,不允許第二個用戶登錄。
情況之二:第一個用戶登錄了,第二個用戶登錄擠掉第一個。
針對於第一種情況,可以在數據庫設置用戶狀態,也可以在緩存,這個很容易實現,現在討論瀏覽器異常關閉
的情況如何處理
可以考慮以下3個方法:
1。session失效,實現比較簡單,也很保險,但缺點是實時性太差。
2。ajax輪詢,也就是在客戶端寫個定時器,定時通過ajax方式發送一個信號到服務端,當服務端過了最大時間都沒有接收到信號說明客戶端已經關閉。
3。客戶端用一個腳本監測是否關閉

window.onbeforeunload = function onunload_handler(){
 //瀏覽器關閉的時候會執行到此處
  //處理用戶信息,使之變成離線狀態
}


 

IE fireFox支持

 

關於第二種情況:可以通過管理session來實現,後一次登錄的獲得前一次登錄的session,並主動讓其失效,因爲這個失效是瞬間的,所以前面登錄的用戶被擠掉了。

這個主要是做一個session監聽,對所有有效的session進行管理,就是把他們保存在全局變量中,並讓它跟當前的用戶綁定在一起,下一次這個用戶可以根據userId之類的信息找到上次登錄但還沒失效的session,並讓其失效

發佈了51 篇原創文章 · 獲贊 2 · 訪問量 8261
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章