1

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

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

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

谢谢。

4

1 回答 1

1

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

于 2012-02-08T20:53:21.207 回答