我正試圖解決從我的web應用程序中超時用戶的問題。我目前使用NG2空閒,它似乎僅在活動窗口上工作,而不是被跟蹤服務器端(角服務器的WebPack)如何在斷開連接或關閉瀏覽器後註銷用戶?
我需要在除了上面的一個來處理這兩個事件:
- 在瀏覽器關閉
- 在連接丟失(停電,藍屏等。)
測試後,我超時沒有被關閉窗口後跟蹤。 NG2空閒具有模塊,如保活,但我不完全知道如何使用它,如果它解決我的問題
如果需要
我會提供代碼謝謝
當您關閉我正試圖解決從我的web應用程序中超時用戶的問題。我目前使用NG2空閒,它似乎僅在活動窗口上工作,而不是被跟蹤服務器端(角服務器的WebPack)如何在斷開連接或關閉瀏覽器後註銷用戶?
我需要在除了上面的一個來處理這兩個事件:
測試後,我超時沒有被關閉窗口後跟蹤。 NG2空閒具有模塊,如保活,但我不完全知道如何使用它,如果它解決我的問題
如果需要
我會提供代碼謝謝
當您關閉您的瀏覽器會話會破壞。所以你可以使用會話來註銷。
主要問題是,客戶端和服務器以無狀態方式進行通信。這意味着如果用戶斷開連接,則不會有人知道。
如果您的瀏覽器具有關閉或導航到其他站點的掛鉤功能,則可以使用該功能併發送註銷請求。
與會話過期有關的另一件事,你應該使用它。如果您使用的是令牌,則需要將其列入黑名單,只要該會話可能有效(或者是),就可以爲非活動。
斷開連接是一個主要問題(會話過期試圖以某種方式解決)。 更復雜的方式,如果註銷斷開連接非常重要,您可能需要使用websockets或http long polling。您需要發送心跳信號,如果沒有響應,一段時間後您將自動註銷用戶。
希望這些想法有點幫助。
「您需要發送心跳」的確如此!但是,我如何確保我的聽衆始終在運行並主動跟蹤心跳?我的主要問題是追蹤超時的變量會隨着會話關閉而被銷燬。 –
深入瞭解Websockets。你只需要確保連接併發送心跳,如果它不響應,當會話結束。就那麼簡單。離開頁面等等也會導致這種情況,所以你剛剛處理了不同的場景。 – sascha10000
用戶連接到我的服務器的情況如何?在關閉瀏覽器或發生崩潰後30分鐘,我想超時。我如何聲明一個全局變量並根據用戶活動對其進行更新?如果用戶空閒(或發生崩潰),計時器將開始30分鐘。 30分鐘後,用戶將自動超時並斷開連接。 我正在使用ng2-idle,但在關閉會話後,計時器也隨之消失。我無法跟蹤服務器上的超時時間 –