我知道Comet长轮询对Web服务器不利,因为它们占用每个连接的一个线程。因此,如果您有大量用户使用持久连接,您的Web服务器将崩溃。
HTML5中的Web套接字是否也是如此?
如果每个持久连接也占用一个线程,那么这如何解决资源问题?
HTML5中的Web套接字是否也是如此?
如果每个持久连接也占用一个线程,那么这如何解决资源问题?
Spender是正确的,只有糟糕的Web服务器(例如使用mpm_worker或mpm_prefork的Apache)才会为每个连接使用一个线程/进程。
一个聪明的Comet或Websockets网关(我不久前写了这样一个)将具有基于Proactor(具有固定线程池)或Reactor(单线程)模式的事件驱动架构。长轮询应该通过保持活动的HTTP连接进行(对于支持它的浏览器 - 大约99%),在这种情况下,它将具有类似Websockets的性能/可扩展性特征。