Google app engine 由于通道无缘无故过时而不断断开连接

Google app engine 由于通道无缘无故过时而不断断开连接,google-app-engine,Google App Engine,自从几天前的最新版本发布以来,我们的用户一直在断开连接,因为频道令牌在创建几分钟后就过时了。我们的令牌设置为持续5小时,但如果它们持续5-10分钟,我们就很幸运了,在用户刷新之前,我们甚至无法在频道关闭时重新连接新的频道令牌 Javascript错误会触发它的开始。看起来是这样的: 网络错误:400未知SID- 然后,在Firefox Firebug中,控制台会被无限量地垃圾邮件攻击 通道名称不匹配;忽略消息 直到刷新发生 我们的网站是一个实时互动的聊天网站。我们的用户发送电子邮件给我们,因为他

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

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

网络错误:400未知SID-

然后,在Firefox Firebug中,控制台会被无限量地垃圾邮件攻击

通道名称不匹配;忽略消息

直到刷新发生

我们的网站是一个实时互动的聊天网站。我们的用户发送电子邮件给我们,因为他们不断断开连接。他们要离开现场了。这不仅让我们失去了对用户群的好感,也让我们损失了金钱,我们无能为力,因为谷歌应用程序引擎存在漏洞


请修复此问题或立即回滚到上一版本,直到您解决此问题。最新版本已损坏。

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

谢谢。这缓解了问题,因为我们的用户现在可以重新连接。然而,由于我们每天可用的频道数量有限,因此请求在5小时内过期的频道令牌,并让它们在5分钟后过期,然后被另一个在几分钟后过期的5小时令牌替换,对我们来说不会持续太久。我感谢你调查这个问题!:)您应该能够在整个5小时内重复使用初始令牌——它不会过期;其他原因导致断开连接。如果在客户端缓存令牌值,则应该能够再次使用它,直到出现令牌超时错误。如何区分提前过期的令牌与实际过期的令牌之间的区别?您是否建议我进行连接重试,如果第二次失败,那么我知道它实际上已过期,应该获得一个新令牌?所有这些都是为了缓解GAE上次更新中引入的潜在问题。这些代币不应该过早过期。我认为代币实际上并没有超时。当它出现时,您应该得到一个onerror回调,其中的错误对象的code属性设置为401,description属性设置为“Token+timed+out”。这之后应该是一个onclose回调。这些未知的SID错误可能会触发OneError回调——您可能会停止接收消息,尽管我还没有“在野外”了解到这一点。但您的OneError处理程序中应该会出现不同的错误,我不希望调用onclose。@Moiselettvin您好,我也在为我们的应用程序使用google app engine和compute engine。我正在使用python客户机使用以下代码实现通道API。但我得到了未知SID的相同错误,但无法在python中解决它。你能告诉我怎么摆脱这个吗。非常感谢