gpt4 book ai didi

javascript - 谷歌应用引擎中 channel api中的 channel 断开通知

转载 作者:太空狗 更新时间:2023-10-30 03:06:38 28 4
gpt4 key购买 nike

我在手机上使用我的 GAE 应用程序。即使我通过 socket.close() 函数手动关闭套接字,我在将断开连接通知发送到 channel api 中的/_ah/channel/disconnected 时遇到问题。该帖子在延迟一分钟后出现。有谁知道加快速度的方法?在我的例子中,socket.close() 不会产生 channel 断开通知(虽然只在电话中......它在笔记本电脑上完美运行)!

最佳答案

Channel API 前端服务器“意识到” channel 已断开连接所花费的时间取决于浏览器的实现。

在行为良好的浏览器上,我们捕获 beforeunload 事件并向我们的前端发布一条消息,内容为“此客户端正在消失”。在其他浏览器上,我们可能收不到事件(或者由于各种实现原因我们可能无法收听它,例如浏览器发送它过于频繁(FFFUUUU IE))或者一旦我们收到事件,我们发送的 XHR 可能会收到吞了。在这些情况下,前端服务器意识到客户端已经消失,因为它无法接收到心跳——这就是您手机上发生的情况。 (出于好奇,什么手机?)

您的情况很有趣,因为您显式调用了 onclose。唯一要做的就是处理具有 channel FE 代码的 iframe——换句话说,onclose 的行为就好像整个浏览器窗口都关闭了;它没有利用浏览器仍处于良好状态并且可以等到消息发送后才关闭的事实。

所以我推荐两件事:在您的代码中添加一个自定义处理程序(它与您的/_ah/disconnect 处理程序做同样的事情)这样当您知道您正在手动关闭 channel 时就可以创建一个 XHR。这很笨拙但很实用。令人遗憾的是,您需要在 JavaScript 代码中明确知道您的客户端 ID。

其次,向我们的问题跟踪器 (http://code.google.com/p/googleappengine/issues/list) 添加一个问题,以便在显式调用 onclose 时请求更好的断开连接通知。

希望对您有所帮助;抱歉,目前没有简单的答案。

关于javascript - 谷歌应用引擎中 channel api中的 channel 断开通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736105/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com