google-app-engine - 在Chrome和FF中关闭标签页时,未调用Channel API/disconnect入站服务

标签 google-app-engine sockets channel-api

每次用户登录我的应用程序时,我都会创建套接字连接。这意味着,如果它们在同一浏览器窗口中打开新的选项卡,则将为每个浏览器选项卡建立多个套接字连接。
当我关闭这些选项卡时会出现问题;不一致地/disconnect入站服务被调用。
这意味着对于某些连接,不会调用/disconnect;对于某些连接,则会调用它。我无法始终如一地重现此内容(有时它称为/disconnect,有时却没有)。

我依靠/disconnect来清理为特定 channel 创建(存储在数据存储区中)的临时对象,因此我留下了从未调用过/disconnect的所有OpenChannel对象。

Chrome和FireFox会发生这种情况,而IE绝不会发生这种情况。
我是否正确使用API​​?每个浏览器窗口是否应该有一个套接字连接,而不是选项卡? (如果是这种情况,那么如果我们将 token 存储在cookie中,我们是否会重新建立与此 token 的连接?每个客户端ID的连接数是否不算为两个连接?

谢谢。

最佳答案

如果针对使用相同客户端ID创建的 token 打开两个以上的连接,则行为将变得不确定。因此,如果您使用user.user_id()作为客户端ID,并且同一用户打开3个标签,则即使为每个标签创建了新的 token ,您也可能不会获得其中一个标签的/disconnected回调这些标签中。

关于google-app-engine - 在Chrome和FF中关闭标签页时,未调用Channel API/disconnect入站服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9200652/

相关文章:

google-app-engine - 使用 Google App Engine 的大型多用户实时应用程序

python - 简单 channel API 相关测试因 1.8.2 升级而失败

google-app-engine - 如何在 Google App Engine 中动态创建加密的 PayPal 按钮?

google-app-engine - 在谷歌云 SQL 中更改全局隔离级别

java - 本地开发服务器上的谷歌云存储 : Invalid Filename

java - 将本地连接重定向到另一台服务器?

php - 在单独的服务器上,PHP 和 MySQL 之间可以有多少连接/秒?

google-app-engine - 如何将裸域转发到 www.domain for google app hosted site

Python 如何关闭线程中实例化的套接字?

google-app-engine - GAE channel API 重新连接