Web sockets使用的资源像彗星长轮询一样多吗?

3
我知道Comet长轮询对Web服务器不利,因为它们占用每个连接的一个线程。因此,如果您有大量用户使用持久连接,您的Web服务器将崩溃。
HTML5中的Web套接字是否也是如此?
如果每个持久连接也占用一个线程,那么这如何解决资源问题?
2个回答

3
这个假设是完全不正确的。更多信息请参见我在这里给出的答案。例如,可以完全使用IIS中的IAsyncHttpHandler执行长轮询,而不使用每个客户端一个线程。

2

Spender是正确的,只有糟糕的Web服务器(例如使用mpm_worker或mpm_prefork的Apache)才会为每个连接使用一个线程/进程。

一个聪明的Comet或Websockets网关(我不久前写了这样一个)将具有基于Proactor(具有固定线程池)或Reactor(单线程)模式的事件驱动架构。长轮询应该通过保持活动的HTTP连接进行(对于支持它的浏览器 - 大约99%),在这种情况下,它将具有类似Websockets的性能/可扩展性特征。


也许你可以回答我的下一个问题:https://dev59.com/F3A75IYBdhLWcg3wKlyM - never_had_a_name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接