我有一個使用通道API的應用程序。連接應該始終處於活動狀態(24x7),並且我已經以這樣一種方式實現了連接,即每次通道斷開連接時,都會自動創建一個新通道。這在大多數情況下都能正常工作,但我有一些情況,其中onError()方法不會被調用(例如,連接的WIFI更改,或者計算機將進入休眠狀態並返回)。而我的JS應用程序錯誤地假設,如果頻道不是這樣,頻道仍然存在。GAE Channel API - 檢查套接字是否存在於Javascript中
我想到的一個解決方案是ping服務器,要求發送消息。就像Keep Alive一樣。但這對於服務器來說是一個很大的負擔。 (例如,每10秒發送ping請求的1000個客戶端就像每秒100個請求一樣)
所以我想知道是否有辦法檢查連接是否在本地活動,這樣我就不會無意中在服務器上執行DoS連接。
感謝
但是,通過從服務器發送請求,您如何確定連接是否存活? Channel API不提供任何反饋,無論消息是否成功傳遞。我可能會發送到一個死信道,但錯誤地認爲它仍然存在。我可以讓客戶回覆。但是,我們再次回到同一問題 – budsiya 2013-02-22 19:04:00
期待頻道活着。因此,客戶應該定期進行ping。如果您沒有收到任何超時期限的頻道消息,請在JS中放置一個定時事件。如果頻道死了,客戶端應該請求一個新頻道。 – dragonx 2013-02-22 23:00:29
使sesnse。感謝您的建議。 :) – budsiya 2013-02-23 14:30:54