2012-12-30 84 views
0

我正在建立一個與頻道api(java後端 - javascript前端)的聊天應用程序。每次用戶獲取用戶名時,都將在剩餘用戶屏幕中列出。新用戶將從頻道發送到每個用戶並顯示。但如果他們關閉窗口,我想從列表中刪除用戶。我真的不知道如何識別用戶是否關閉了他的窗口,或不用頻道api?GAE頻道api

回答

0

這不是直接需要這樣做的渠道API;在JavaScript中,您可以使用onunload來確定用戶何時離開頁面,然後像平常一樣觸發通道API。但是,不能保證它會被調用(想想如果我剛剛斷電我的機器會發生什麼)。您可以使用JavaScript在服務器上提供檢測信號並執行邏輯,以表示「如果我沒有在X秒/分鐘/任何時間內收到客戶端的任何信息,則認爲此用戶的會話已關閉。」

0

我在python上做同樣的事情。您只需啓用presence入站服務,然後您將在/ _ah/channel/disconnected /每當客戶端斷開連接時收到請求。從請求參數中,您可以確定客戶是誰,併發送將他從應用程序的用戶列表中刪除(如果存在)並(如有必要)向其餘客戶端發送頻道消息,以將他從他們在