I have been looking at SignalR from last few days. Using this I have created an Admin Dashboard to get realtime information about a database table. Basically this table gets populated by may different users from various applications. It has come out well. These updates are possible only when there is persistent connection between client Broswer and WebServer. I have few doubts before deploying this app in production.
I understand that SignalR first checks WebSockets then looks for Long Polling based on there availability between client and server. No matter what it uses, there will be a connection open between client and server.
My question is how does it perform in scenario where more users are connected to the same server for example 100,000 admins are connected at same time. Does IIS has any limitations on number of persistent connections it can open at one point? If so can we configure to that to max value and what wud be that value.
Sorry if it is rookie question
ASP.NET MVC3 & IIS 7 are used for development.
You're probably more likely to run into this on Windows 8 / 10 which has connection limits of only 10*. This will only affect you during development of course - but it's a big pain if you have multiple browsers open with active connections and it's very easy to exceed 10.
*I'm unable to confirm at this time that Windows 10 has the same connection limit as Windows 8, but likely so.
Thanks Paige. Here are my findings. ASP.NET 4.0 by default accepts 5000 maximum concurrent requests per CPU. TO change this we need to set this number in ASP.NET Config file which can be found in this location %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet.config
Also I found this great PodCast by Scott HanselMan http://www.hanselminutes.com/325/aspnet-45-updates-core-webforms-and-signalr-with-damian-edwards
You should review the Performance Section of the SignalR Wiki on GitHub. This provides some really good guidance for the following:
Additionally, it states the key Peformance Counters to monitor when performing load testing of your application. Which IMO you should do to truly have an understanding of how your application is going to perform and make adjustments as necessary for your specific scenario.
Finally, there is a link to Crank the recommended tool for generating client load with SignalR.
Update: Link to Crank is now current.