2014-04-30 86 views
0

我想要一個實時遊戲去,我有登錄很好和異步,但我擔心註銷部分。很多時候,有人會關閉瀏覽器窗口/選項卡,而不是實際點擊註銷按鈕。NodeJS客戶端OnBeforeUnload

Can NodeJS能檢測到onbeforeunload事件,所以我可以運行一個查詢來將它們設置爲脫機狀態?

我在考慮添加「lastaction」時間戳,但這需要幾乎不斷的刷新,而一次性註銷檢查將是理想的。

+0

'onbeforeunload'不能依賴。 – bjb568

+0

不,它無法檢測到服務器端的瀏覽器事件,並且在beforeunload上執行Ajax請求是非常不可靠的。您必須使用「心跳」或定時註銷。 – adeneo

+0

@adeneo我可以觸發一個websocket響應使用客戶端'onbeforeunload'或是不可靠的,因爲bjb568說? –

回答

3

如果您使用的是網絡套接字,那麼您使用的庫可能會支持套接字斷開事件。

io.sockets.on('connection', function(socket) { 
    // handle user connected 

    socket.on('disconnect', function() { 
     // handle user disconnected 
    }); 
}); 
+0

這是正確的。如果你使用的是socket.io,如果你想查看socket.io用於斷開連接事件的確切語法,可以在這裏看到服務器示例:http://socket.io/#how-to-use – Josh1billion