2017-07-08 100 views
0

我见过很多人写过Ajax(轮询)vs websocket。我还没有见过任何人提到websocket的缺点。可以websocket排空网络服务器的连接池

正如我们所知,每个http请求都需要web-server连接。web服务器可以支持的最大并发连接数量,除此之外,如果请求发出,请求必须等到任何连接都收费。

我简单的http请求(基于轮询)的情况下,当一个请求服务器连接服务器放在池中,并且该连接可以用于下一个请求,所以它是不太可能在简单的http请求中,请求会正在等待连接。

但是在websocket连接永远不会放回到web服务器池中,所以下一个请求将不得不等待永久连接。

所以,我想知道,我是正确思考还是错过了一些东西。我是对的,这是如何解决的?这个问题是否曾经发生过?

回答

0

浏览器可以通过使用Connection: Keep-Alive标头来池连HTTP连接,然后将它们重新用于对同一主机的进一步请求。

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

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