javascript - 无法打开与同一 SockJS 端点的多个连接

标签 javascript java spring spring-websocket sockjs

我正在开发一个应用程序,它使用 SockJS 来更新连接到服务器的其他应用程序的一些通用数据。问题来了,当 我尝试在两个浏览器选项卡中打开它,因为只有其中一个实现了连接,而另一个则一直等待直到超时。

谁能解释一下为什么会发生这种情况?有什么解决办法吗?

在服务器上,我使用 SockJS 的 Spring 实现,但禁用了 WebSocket 传输,因为应用程序服务器不支持它。

最佳答案

对于任何认为这有帮助的人,我最终发现 HTTP/1.1协议(protocol)建议每个域的连接限制为两个连接,因此,浏览器在任何选项卡/窗口/iframe 之间共享这两个连接。因此,当这两个连接被消耗时,所有其他连接/请求都必须等待,直到这两个连接之一被释放。

类似 cometd 的库通过检测多个客户端何时连接并返回到正常轮询来处理此问题。

关于javascript - 无法打开与同一 SockJS 端点的多个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40658749/

相关文章:

java - 在 Spring 选择的 Where 中使用 'in' 而不是 '=' 的异常

javascript - 使用 WordPress 默认音频播放器播放音频自定义起点和终点

java - Webflux Mono - 继续运行直至完成

java - 如何用另一个数组列表中歌曲的艺术家姓名填充数组列表

java - Spring Rest API和无后缀的静态Web内容访问

java - Spring 应用程序错误: EL1008E

javascript - 即使未调用线路,Angular2 路由器也会执行

javascript - 无法在 jQuery 中传递 formData 和其他参数

javascript - 在 node.js 中使用命名参数

java - 如何使用 java7 文件属性 api 获取数字 groupid/userid?