2014-03-06 29 views
0

我想讓我的web應用程序用戶登錄所有可能的流程,如意外關機(停電),強制關閉瀏覽器以及此流程中的任何內容。我只想用一些狀態文本顯示在線用戶。我發現一些解決方案,但他們的解決方案將採取服務器大量的內存,如更新登錄表last_logged列,從客戶端到服務器端每20秒當前時間,並檢查last_logged時間不到20秒,從現在開始狀態爲離線。我需要完美的解決方案,將繁重的工作量加載到服務器上簡單地說,我想要喜歡這個gmail聊天列表,所有流程都可以在Gmail聊天中正常工作。 我不知道這些概念,我是新的這個概念。可能你已經找到了這個解決方案,如果你已經知道這種類型的概念的解決方案,請分享你的知識。它將對所有開發者都有幫助,我很欣賞你的效果。如何獲取用戶的在線狀態jsp

感謝您花費寶貴的時間閱讀我的文章:)

回答

0

爲什麼你認爲更新表需要「大量的記憶」?或者你爲什麼認爲它的「繁重的工作負載到服務器」?它基本上沒有。除了使用數據庫之外,沒有其他解決方案,因爲瀏覽器不會在用戶離開您的網站時實施任何類型的消息。您必須通過使用上次訪問時間更新表格等方式自行跟蹤。

即使瀏覽器確實實現了「用戶已經離開您的網站」類型的消息,您仍然必須更新數據庫並從一個數據庫中讀取以跟蹤這些數據。

此外,即使瀏覽器發送了這些類型的消息,如果用戶斷電,瀏覽器顯然無法發送它。

+0

謝謝developerwjk它是獲得用戶在線狀態的唯一方法! –

0

我很想知道你解決了什麼解決方案。我也面臨同樣的挑戰,因爲我決定使用Memcached服務器來實現這一點。基本上我在做的是緩存Memcached中客戶ID的密鑰持續一段時間,並且每次用戶做任何表示他的在線狀態的活動時,我都會更新到期時間,比如說1分鐘。如果用戶未創建新事件或動作,則密鑰從數據庫中過期,並且他離線到其他用戶。就像你描述的一樣,但只是在記憶中做。

相關問題