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.
A SignalR app can scale out based on the number of messages sent, while the Azure SignalR Service scales to handle any number of connections.
In the default mode, the app server creates five server connections with Azure SignalR Service. The app server uses the Azure SignalR Service SDK by default. In the following performance test results, server connections are increased to 15 (or more for broadcasting and sending a message to a big group).
The Azure Service Bus cloud service uses the AMQP 1.0 as its primary means of communication.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With