[英]HTML5 websockets: max number of open connections?
HTML5 websockets是(并且已经有一段时间 )一个热门话题,因为它们优雅地实现了实时 服务器端推送 。
我目前有一个工作应用程序,其中包含由Tomcat 7.0.30 提供支持的websockets ,其中包括websocket支持 。 但是将其转移到生产环境会引发问题。
主要是我想知道每个浏览会话可以同时操作( 打开 )的最大连接数; 浏览会话意味着单个浏览器选项卡或窗口。
开放的websocket连接是否与Web服务器可以同时处理的最大连接数相加? 例如Apache中的MaxClients
。
相反, 浏览器本身限制的单个浏览会话的最大websockets数是多少? 正如此博客文章所示,截至2012年4月,不同的浏览器支持不同数量的开放 websocket连接。 (我个人的目标是每个浏览会话 1个开放的websocket;但是这个信息仍然很好知道)。
TL / DR:
ws:
和wss:
connections? 浏览器没有最大连接默认值的标准规范。它取决于实现[0]。 此外,对于同一应用程序而言,每次浏览会话使用多个Web套接字似乎有些过分,因为您可以使用发布/订阅源渠道。
连接的瓶颈通常是在服务器端。 Web套接字是对HTTP的升级,因此连接只是“升级”HTTP(TCP)连接[1] .HTTPS和WSS只为正常连接添加了一个安全层。它们不是一个不同的连接[2]。 在您的情况下,检查maxConnections (和maxThreads )[3]和您的操作系统最大值[4] [5]。 如果您的并发连接数达到数万,那么您应该开始考虑负载平衡或群集[6]。
[0] https://code.google.com/p/chromium/issues/detail?id=85323
[1] http://en.wikipedia.org/wiki/WebSocket
[2] http://en.wikipedia.org/wiki/HTTP_Secure
[3] http://tomcat.apache.org/tomcat-7.0-doc/config/http.html
[6] http://tomcat.apache.org/tomcat-7.0-doc/config/cluster.html
有关高并发性的更多信息: http : //www.kegel.com/c10k.html
在Gecko 7中,他们引入了参数network.websocket.max-connections
你可以在about:config
设置它。 它根据这个来“一次”设置最大的websocket连接: https : //developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
我不知道你是否可以从代码中确定这个数字,以及是否有办法确定在其他会话中打开了多少(所以你剩下多少)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.