无法打开多个连接到同一个SockJS端点

时间:2016-11-17 15:25:35

标签: javascript java spring spring-websocket sockjs

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

¿任何人都可以解释我为什么会这样? ¿有没有解决方案?

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

1 个答案:

答案 0 :(得分:1)

对于发现这有用的人,我最终发现HTTP/1.1协议建议每个域连接限制为两个连接,因此,浏览器在任何选项卡/窗口/ iframe上共享这两个连接。因此,当这两个连接完成时,每个其他连接/请求必须等到这两个连接中的一个被释放。

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