2012-05-24 15 views
4

自從前幾天發佈最新版本以來,由於頻道令牌在創建數分鐘後過時,因此我們的用戶不斷斷開連接。我們的令牌設置爲持續5個小時,但如果它們持續5-10分鐘,我們很幸運,並且當頻道關閉時,我們甚至無法使用新頻道令牌重新連接,直到用戶刷新。由於頻道無故失效造成的持續斷開連接

JavaScript錯誤觸發它的開始。它看起來像這樣:

NetworkError:400未知SID - http://89.talkgadget.google.com/talkgadget/dch/bind?VER=8&clid=C9C2EFC06C7C5163&gsessionid&prop=data&token=AHRlWrrWl611ZMMDw8Apgi5vdYuS9UslofxEiJI47-2n4rkPgmuu1z0AN-UNQcyNEvhck-AYAMSLPru8Aumooz62hYNNbLTbi1a3lTSAzGEyj6TsXZirJYE&RID=rpc&SID=BEBDEFDA92C6A9F7&CI=0&AID=54&TYPE=xmlhttp&zx=gsjg8mb1i987&t=1

然後,在Firefox的Firebug,控制檯被無限與

頻道名稱不匹配的垃圾郵件;消息被忽略

直到發生刷新。

我們的網站是一個聊天的實時交互網站。我們的用戶發送給我們的電子郵件令人不快,他們不斷斷開連接。他們正在離開該網站。這不僅使我們對用戶羣產生了好感,而且還使我們付出了金錢,而且我們無能爲力,因爲這個錯誤與Google App Engine有關。

請立即解決此問題或回滾到以前的版本,直到您找出結果。最新版本被打破。

回答

2

我還沒有能夠重現這一點,但我仍然看着它。同時:如果你在收到錯誤後顯式調用socket.close(),你能創建一個新的Channel對象並重新連接嗎?如果這不起作用,甚至可以嘗試從DOM中手動刪除ID爲「wcs-iframe」的元素。您應該能夠在執行此操作時使用原始標記,而不是獲取新標記。

+0

謝謝。這可以緩解問題,因爲我們的用戶現在可以重新連接。但是,由於我們每天都有可用的頻道數量有限,請求的頻道令牌在5小時後過期,並讓它們在5分鐘後過時而被另一個5分鐘的令牌替換,該令牌幾分鐘後就會過時。我們不會持續太久。我很感謝你看着這個問題! :) – Steven

+0

您應該能夠在整個5小時內重新使用初始令牌 - 它不會過期;其他事情正在導致斷開連接。如果您在客戶端緩存令牌值,則應該能夠再次使用它,直到出現令牌超時錯誤。 –

+0

如何分辨從過期的令牌過早過期的令牌?你是否建議我應該進行連接重試,如果第二次失敗,那麼我知道它實際已過期,應該得到一個新的令牌?所有這些都是爲了緩解GAE上次更新中引入的潛在問題。這些令牌不應該過早過期。 – Steven