java如何實現同乙個瀏覽器同的乙個系統只能登入乙個賬號,如果登入了第二個,第乙個賬號自動登出?

時間 2021-06-25 20:13:07

1樓:zhangs1314

樓主的意思可能是在同乙個瀏覽器裡面的不同的標籤頁,訪問了同乙個專案,後面登入進去的賬號,把前面登入進去的賬號踢掉.

以前俺的做法,一般是用ws協議做長連線.每乙個長連線的唯一標記是乙個sessionId.

登入的時候,先判斷是否有sessionId被儲存過.

如果有,伺服器向這個sessionId主動推送通知,由前端js做出處理,即強制其退回到登入頁,並可以提示"您已經被踹了."

登入成功後,儲存這個新的sessionId.

登出之後,清空當前的sessionId.

觸發的事件可能有:1.開啟登入頁時,是瀏覽器端與伺服器端握手建立長連線的時候,通過onOpen事件來獲取sessionId;2.

登入時,通過onMessage事件把sessionId儲存進資料庫或者全域性變數或者快取裡.3.關閉瀏覽器退出專案時,是瀏覽器端與伺服器端斷手釋放長連線的時候,通過onClose事件來獲取sessionId,並且到資料庫或者全域性變數或者快取裡清除它.

僅供參考.

使用同乙個核心得瀏覽器就不用考慮兩者得相容性了嗎?

雪見仙尊 需要考慮,但實際上遇到問題的可能性很小。這是因為核心版本的問題。比如說中國產的套殼瀏覽器 360瀏覽器,QQ瀏覽器,搜狗瀏覽器,極速瀏覽器 獵豹瀏覽器 它們的核心雖然也是 chromium,但可能落後 Chrome 穩定版數個版本,一些新特性的支援沒有及時跟進。不過既然是 新特性 那麼一般...

乙個統一的瀏覽器核心 vs 多個瀏覽器競爭,哪一種對 Web 發展更有利?

愛讀書的路人甲 即使只有一家,新舊版本之間依然會有相容問題。所以從減少相容性的角度來說,一家和多家並沒有什麼區別。而如果只有一家,那麼所謂的國際標準其實就是乙個企業標準了。在這個標準制定過程中,會不會涉及到專利?你猜!另外,從安全角度來說,如果只有一家,那麼當他爆出0Day的時候,你有可用的替代品嗎...

瀏覽器向同一網域名稱同時傳送兩個 HTTP ajax 請求,究竟是共用了乙個 TCP 連線還是兩個?

Saviio 之前答題時漏看了 同時 所以做下補充。HTTP1.1裡大概規範了幾項提高效能的手段 持久連線 keep alive persistent connection 並行連線 Pipelining 第一點之前已經說過了,所以不表。第二點,由於現代網頁通常包含了複數個 10 資源,而按照預設設...