SignalR Scale Out Options
SignalR is a free and open-source software library for Microsoft ASP.NET that allows server code to send asynchronous notifications to client-side web applications.
SignalR is a free and open-source software library for Microsoft ASP.NET that allows server code to send asynchronous notifications to client-side web applications.
A scale out operation is the equivalent of creating multiple copies of your web site and adding a load balancer to distribute the demand between them. When you scale out a web there is no need to configure load balancing separately since this is already provided by the platform.
The SignalR library includes server-side and client-side JavaScript components. Assuming your server meets the prerequisites, your SignalR should be configured. Please see below for the prerequisites:
SignalR takes advantage of several transports, automatically selecting the best available transport given the client's and server's capabilities. SignalR takes advantage of WebSocket, an HTML5 API that enables bi-directional communication between the browser and server. SignalR will use WebSockets under the covers when it's available, and gracefully fall back to other techniques and technologies when it isn't, while the application code remains the same.
SignalR also provides a simple, high-level API for doing server-to-client RPC (call JavaScript functions in a client's browser from server-side .NET code) in an ASP.NET application, as well as adding useful hooks for management, such as connect/disconnect events, grouping connections, authorization.
For more information about SignalR, for the more technologically inclined System Administrators, you can read an interesting article here:
Please note: Alemba is in no way affiliated with the above and the link is provided as a courtesy. We are not responisble for the content of external sites. Please use them at your discretion understanding we make no warranty of the information held there.
Do Not Scale Out
Scale Out Via SQL Server
Scale Out Via Service Bus
This is the default setting, and likely the only one you will ever need. Larger organizations however, may find that balancing is necessary. For example, organizations with 500 or more agents working concurrently in chat or using CTI, may need some scaling.
If you choose to Scale out via SQL server, you are essentially selecting to use SQL as your option. This is appropriate for on premise customers.
For Azure clients (Hosted ASM solutions), you will scale using a Service Bus.
Create a Service Bus in the Azure Portal
Create a topic in that Service Bus
Get the connection string by accessing the Service Bus "Shared Access Policies"
Click "RootManageAccessKey"
Copy the "Primary Connection String" value
Enter this is the Service Bus Connection String field
Add the Topic Name in the Service Bus Topic Name field
Restart IIS - You will need to contact support or log an IIS Reset request at https://alemba.help/production/Portal.aspx
Impacts for CTI (Computer Telephony Integration)
If CTI Type is set to Telephone Host, the CTI is pushed via signalR to the client whenever the CTI url is called. The Default SignalR setting will work here, and you only need to scale per the options above.
If CTI Type is set to Push Notification, SignalR is not called