套接字 IO - 新会话触发断开连接

Posted

技术标签:

【中文标题】套接字 IO - 新会话触发断开连接【英文标题】:Socket IO - New session trigger a disconnect 【发布时间】:2012-11-22 12:57:29 【问题描述】:

我使用 SocketIO 从 html5 Web 应用程序与 NodeJS 服务器通信。在使用 SocketIO (io.connect) 建立的第一个连接完成后,如果我打开一个新选项卡并触发新的登录,例如在应用程序的另一个模块中,它会打开一个与 SocketIO 的新连接。一旦第二个连接成功,第一个 websocket 连接就会关闭(我收到一个“断开连接”事件)。

您知道 SocketIO 库中是否存在阻止服务器与同一台计算机建立多个连接的东西?

如果第一个连接是用 Chrome 建立的,第二个是用 Firefox 建立的,行为是相同的。

但是,如果我使用 Safari,两个连接都会保持活动状态。

很奇怪。

谢谢!

【问题讨论】:

【参考方案1】:

我们最近在使用 Chrome 作为主浏览器的 OSX 计算机上遇到了这个问题,并尝试使用 Firefox 打开第二个 websocket。该问题与之前未被接受为 websocket 例外的无效证书有关。如果异常被接受并且已经连接到套接字,这会导致 chrome 浏览器断开连接。一旦 Firefox 接受了无效证书的例外,两个连接都会保留。当然,在存在有效证书的生产环境中,不应该出现这个问题。

【讨论】:

以上是关于套接字 IO - 新会话触发断开连接的主要内容,如果未能解决你的问题,请参考以下文章

断开连接/错误时清除 socket.io 缓冲区

Socket.io断开事件错误地为其他用户触发,然后再次连接

刷新时Socket.io断开连接?

Socket.io - 客户端断开连接后手动重新连接

socket.io 由于数据大小而断开连接

Socket.io 断开事件和相关闭包的垃圾收集