如何在.Net中处理多达100k个HTTP连接
我正在创建一个服务器来监视网页上客户端的在线状态。
客户端将使用JavaScript(在HTML页面上)联系一个(单独的)服务器,告诉服务器他们是活着的/在线的。
我正在考虑两种方法之一:
持续保持连接并定期发送。 当客户端断开连接时,这会给我更高的精度,并且我不需要经常更新内存结构(onlineinfo),因为我们知道客户端何时来去。 网络设备/带宽的其他好处。
客户端(重新)间隔连接,告诉服务器他们还活着。 这需要很多连接,并且必然会降低准确性。 我想像2-3分钟的时间间隔是我们能做的最好的。 每秒80k / 120 = 660个连接... ASP.Net不会执行得太快,所以我不确定这一点。 8核心系统=每次执行约10毫秒。
有了这么多的连接,显然有一些限制。 例如,我不能同时产生多个线程。 1请求到IIS产卵ASP.Net应用程序将使用1个线程,直到请求完成。
编写一个独立的http服务器是最好的选择吗? 不.Nets TcpListener利用httpd.sys(IIS)?
任何(建设性)关于这个问题的想法将不胜感激。
编辑:添加一些有用的链接,通过下面的链接从Nicolas Repiquets回答:
100 000个持续连接不是一个可行的选择。
间隔发送HTTP请求更为可行,编写专用的HTTP服务器是IMO的一个有趣选择。
看看这个问题的一些方向。
我知道你具体说.NET,但你应该看看NodeJS,因为它确实是你要做的,但它是服务器端JavaScript。
链接地址: http://www.djcxy.com/p/48743.html上一篇: How to handle up to 100k HTTP connections in .Net
下一篇: How to send large file using Spring REST multipart in chunks (REST client)