当前位置: 首页 > 知识库问答 >
问题:

HTML5 WebSockets:打开连接的最大数量?

贝镜
2023-03-14

HTML5 websockets是(并且已经有一段时间了)一个热门话题,因为它们优雅地支持实时服务器端推送。

我目前有一个使用Tomcat 7.0.30支持的websockets的工作应用程序,其中包括websocket支持。但是将其转移到生产环境中会产生问题。

打开的websocket连接加起来是否等于Web服务器可以同时处理的最大连接数?例如。Apache中的MaxClients

相反,单个浏览会话的websockets的最大数量是否受浏览器本身的限制?正如这篇博文所示,截至2012年4月,不同的浏览器支持不同数量的开放websocket连接。(我个人的目标是每个浏览会话打开1个websocket;但是这个信息仍然很好地知道)。

TL/DR:

    null

共有1个答案

孟璞
2023-03-14

对于浏览器来说,没有最大连接默认值的标准规范,这取决于实现[0]。此外,对于同一个应用程序,在每个浏览会话中使用多个web-socket似乎有些过火,因为您可以使用pub/sub通道。

连接的瓶颈通常在服务器端。Web-socket是对HTTP的升级,所以连接“只是”升级的HTTP(TCP)连接[1]。HTTPS和WSS只是在普通连接上增加了一个安全层,它们并不是一个不同的连接[2]。在您的情况下,检查maxConnections(和maxThreads)[3]和操作系统maximums[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

[4]https://serverfault.com/questions/10852/linux-server上的what-limits-the-maximal-number-of-connections

[5]https://superuser.com/questions/251596/is-there-a-hard-limit-of-65536-open-tcp-connections-per-ip-address-on-linux

[6]http://tomcat.apache.org/tomcat-7.0-doc/config/cluster.html

更多关于高并发的信息:http://www.kegel.com/c10k.html

 类似资料:
  • 嘿,我正在使用Glassfish开源v4,我遇到了一个奇怪的问题。 我在管理控制台中定义了到Oracle 11g的JDBC连接池,并设置了: 初始和最小池大小:500 最大游泳池大小:1000 池大小调整数量::750 我已经为这个连接池创建了一个特定的用户。然而,有时当我检查数据库中打开的连接时,我发现有1000多个连接(我看到的最大连接数是1440个) 当发生这种情况时,任何查询尝试都会失败,

  • 问题内容: JPA /hibernate查询中允许的联接数是否有限制? 由于Hibernate 不会自动加入,因此我必须在JPA / Hibernate查询中明确指定加入。例如,一个人有一个地址,一个地址有一个状态。以下查询检索地址和状态已满的人员: 随着我不断添加联接,最终(在左联接12-13之后)达到了Hibernate生成无效SQL的限制: 我确实将Hibernate的方言设置为数据库实现M

  • 我正在使用hikari cp和spring boot应用程序,它有超过1000个并发用户。我已经设置了最大池大小- 当我使用 它显示的最大值为300,等于池大小。它永远不会增加超过最大池。这是故意的吗?我认为池大小意味着保持连接,以便在将来需要数据库请求时可以重用连接,但在需要时可以进行更多连接。 另外,当我删除max pool配置时,我会立即得到- HikariPool-0-连接不可用,请求在3

  • 因为Websockets构建在TCP之上,所以我的理解是,除非端口在连接之间共享,否则您将受到64K端口限制的约束。但我也看到过使用Gretty进行512K连接的报告。所以我不知道。

  • 当在客户端和服务器之间建立了连接之后,就会从Web Socket实例触发事件。它是客户端和服务器之间的初始握手。 建立连接之后引发的事件称为。创建Web Socket连接非常简单。所要做的就是调用WebSocket构造函数并传入服务器的URL。 以下代码用于创建Web Socket连接 - 建立连接后,将在Web Socket实例上触发事件。 是指客户端和服务器之间的初始握手,它会产生第一次交换,

  • 问题内容: 我遇到要在Orion上创建大量实体的情况。我正在此docker-compose中使用Orion和mongo的docker版本。 现在,当我想上传2000个实体时会出现问题(为每个实体打开新的连接,我知道可以做不同的操作,但现在是要求的),我成功创建了不超过600个(或更少的永远不完整的数量)的其余实体创建错误: 因此,我认为此问题与Orion中的maxConnections,reqPo