Question

I have an application that uses SignalR to connect users on my site for things like chat. If I am only first opening my site to the public, I would assume I only need one instance for the first few months of usage (as long as demand doesn't require another instance). Can i just run my signalR hub class in the same instance without using Windows Azure Service Bus and then move it to the service bus once i use 2 or more instances?

Also one quick side question, on the Windows Azure Service Bus site it says:

The Service Bus enables up to 100 concurrent connections to an entity.

does this mean only 100 concurrent users connected to the service bus? or 100 concurrent connections to instances? I could see how only 100 concurrent users could be very limited in terms of large scale websites, so Im assuming it means instances? A little confused on how the architechture would work once you move to the service bus with concurrent connected users.

Was it helpful?

Solution

Your users will be connected to your instances, and it will be your instances that connect to the Service Bus. I'm not saying 1 instance = 1 connection (I don't know how SignalR.WindowsAzureServiceBus works internally), but you won't reach the limits with a few instances running.

SignalR.WindowsAzureServiceBus will use the Service Bus as a ... service bus and distribute messages between instances to make sure you can use SignalR with multiple instances.

And you can indeed run the 'normal' SignalR in a single instance without Windows Azure Service Bus and change it to the SB implementation later (see this wiki for the steps: http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus). But you should take into account that the Windows Azure SLA only applies if you have 2 instances or more running.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top