4

自从几天前的最新版本以来,我们的用户不断被断开连接,因为通道令牌在创建几分钟后就过时了。我们的令牌设置为持续 5 小时,但如果它们持续 5-10 分钟,我们就很幸运了,当频道关闭时,我们甚至无法重新连接新的频道令牌,直到用户刷新。

Javascript 错误触发它的开始。它看起来像这样:

NetworkError: 400 Unknown 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 上。

请立即修复此问题或回滚到以前的版本,直到您弄清楚为止。最新版本已损坏。

4

1 回答 1

2

我无法重现此内容,但我仍在查看它。同时:如果您在收到错误后显式调用 socket.close() ,您是否可以创建一个新的 Channel 对象并重新连接?如果这不起作用,您甚至可以尝试手动从 DOM 中删除 id 为“wcs-iframe”的元素本身。执行此操作时,您应该能够使用原始令牌,而不是获取新令牌。

于 2012-05-24T16:55:25.580 回答