可以websocket耗尽网络服务器的连接池

时间:2017-07-08 05:21:56

标签: networking websocket architecture system-design

我见过很多人写过Ajax(polling)vs websocket。我没有看到任何提到下面的websocket缺点。

正如我们所知,每个http请求Web服务器都需要连接.Web服务器可以支持最大并发连接数,除此之外,如果请求到来,请求必须等到任何连接费用。

我的简单http请求(基于轮询)的情况,当服务器连接的请求被放入池中并且该连接可用于下一个请求时,因此在简单的http请求中,请求将是非常不可能的等待连接。

但是在websocket连接中永远不会放回到web服务器池中,所以下一个请求必须经常等待连接才会非常频繁。

所以,我想知道,我是在思考还是缺少某些东西。我是对的,这是如何解决的?这个问题是否会发生?

1 个答案:

答案 0 :(得分:0)

浏览器可以使用Connection: Keep-Alive标头汇集HTTP连接,然后重复使用它们以进一步请求同一主机。

但WebSockets与请求无关,并且不会共享它的连接。您连接到WebSocket服务器,然后控制代码中的通信。这就是全部。如果你想要另一个连接,那么你应该创建它。

此外,来自池的现有HTTP连接可以是upgraded到WebSocket连接。