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

SignalR/Websockets连接限制和最佳实践

许招
2023-03-14

我试图了解如何最好地设计基于IIS/ASP.NET的websocket应用程序,特别是关于并发限制。

我已经阅读了关于“并发Websocket连接”以及如何调整各种值的所有IIS/ASP.NET文献--但是,当谈到websockets时,“并发”的定义是什么?如果我打开了一个websocket,并且它处于空闲状态,这是在“使用”连接吗?空闲websockets是否计入连接使用总数,或者只在发送/接收消息时才计入?

  • https://github.com/signalr/signalr/wiki/performance
  • http://www.asp.net/signalr/overview/performance/scaleout-in-signalr

谢谢

共有1个答案

芮叶秋
2023-03-14

然而,当谈到websockets时,“并发”的定义是什么?如果我打开了一个websocket,并且它处于空闲状态,这是在“使用”连接吗?空闲websockets是否计入连接使用总数,或者只在发送/接收消息时才计入?

对,处于空闲状态的开放连接不会消耗太多的资源,除了TCP保留,如果服务器支持协议和/或应用程序级别的ping/pong。更重要的是,由于Websockets是面向连接的,您可能还持有与连接相关联的一些状态(用户对象、用户数据等)

我希望在任何时候都有非常多的websockets打开,但是发送的消息很少,可能每分钟几条,而且它们总是服务器->客户机(并且发送到单个特定的客户机,而不是广播)。这种安排是否/是否应该引导我走上任何特定的实施路线?

SignalR是一个polyfill,一个暂时的框架,直到WebSockets得到广泛支持...这已经发生了。还忘了提到WebSockets从Windows Server2012开始就可以使用:)

 类似资料:
  • 问题内容: 在厌倦了c3p0的恒定锁定之后,我将转向BoneCP作为数据库的备用连接池。我有一个服务器应用程序,每分钟处理大约7,000个项目,需要将这些项目记录到我们的MySQL数据库中。我目前有100个工作线程,并按如下方式设置了我的池: 这些应用程序是否接受这些设置?我问是因为运行一两分钟后,在尝试调用池时出现BoneCP异常。谢谢您的帮助。 这是我在工作线程中用于db调用的代码,它不会在网

  • 我在Windows Server 2012和IIS8上使用SignalR V2.0,我通过以下文章在服务器上启用了WebSockets,http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support 但是signalR首先尝试使用websockets,然后将传输更改为serverSe

  • 问题内容: 我有一个具有相当基本配置的基本Spring JDBC应用程序: 我想介绍一个连接池,在阅读了SO上的多个线程后,我对使用哪个池库感到有些困惑。 C3P0和DBCP似乎在SO方面具有更多的信誉。由于使用的是Oracle,因此我也可以使用驱动程序提供的池数据源。 我了解还有更多可用的库-例如新的Apache Tomcat 7池库。 我真的应该避免使用任何库吗? 我应该在给定的库中使用任何建

  • 问题内容: 好的,这是那些自以为是的主题之一,但是根据您的知识,见解和当前实践,设置以下方案的最佳方法是什么? 我正在构建一个广泛的数据输入应用程序,而从广义上来说,我的意思是我只有基本设置,它包含了整个程序的约15%至25%,并且我大约有15个表单是部分设置的。(他们仍然需要工作)我使用SQL Compact 4.0作为后端数据库,因为我没有存储MMO的大量数据,所以我实际上并不需要更扩展的数据

  • 我在ASP.NET Core2.0和C#中使用了SignalR项目,当我在本地测试时没有问题,但当我在Azure上传项目时,连接受到限制,我只能进行5个并发连接。我查了一下网站,发现了一些解决方案,比如在ASP.NET4.5中限制WebSocket的性能因素?它显示了web.config中的一些设置,但我没有web.config文件。如何增加并发连接?

  • 我在azure中有下一个设置: 一个应用程序网关均衡器 网关后端池中的两个虚拟机。 在vms上部署了一个signalr应用程序。 问题: 当客户端(浏览器)将调用signalr hub服务器上的方法并且消息大小等于或grater时,我将收到70kb(在signalr客户端启用日志记录): 信号员:与websocket的不干净断开:[未给出原因]。信号员:关闭Websocket。 SignalR:清