SignalR logo

SignalR

A new library for ASP.NET developers that makes developing real-time web functionality easy.
510
1.1K
+ 1
133

What is SignalR?

SignalR allows bi-directional communication between server and client. Servers can now push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.
SignalR is a tool in the Realtime Backend / API category of a tech stack.
SignalR is an open source tool with 8.8K GitHub stars and 2.3K GitHub forks. Here’s a link to SignalR's open source repository on GitHub

Who uses SignalR?

Companies
64 companies reportedly use SignalR in their tech stacks, including ViaVarejo, accuRx, and XYZ Technology.

Developers
340 developers on StackShare have stated that they use SignalR.
Pros of SignalR
29
Supports .NET server
21
Real-time
16
Free
15
Fallback to SSE, forever frame, long polling
14
WebSockets
10
Simple
8
JSON
8
Open source
7
Ease of use
5
Cool
0
Azure
Decisions about SignalR

Here are some stack decisions, common use cases and reviews by companies and developers who chose SignalR in their tech stack.

Shared insights
on
SignalRSignalRMSSQLMSSQLAngularJSAngularJS.NET.NET

I'm working on a project where I need to both send real-time updates for specific data sets, along with providing notifications to the users after long-running processes have been completed (SSE).

The project is using .NET Framework, AngularJS, & MSSQL. I understand that SignalR is nice as a polyfill for .NET and you can scale with a backplane, but I was wondering if there was a more efficient/effective technology for this?

See more
Shared insights
on
gRPCgRPCSignalRSignalR.NET.NET

We need to interact from several different Web applications (remote) to a client-side application (.exe in .NET Framework, Windows.Console under our controlled environment). From the web applications, we need to send and receive data and invoke methods to client-side .exe on javascript events like users onclick. SignalR is one of the .Net alternatives to do that, but it adds overhead for what we need. Is it better to add SignalR at both client-side application and remote web application, or use gRPC as it sounds lightest and is multilingual?

SignalR or gRPC are always sending and receiving data on the client-side (from browser to .exe and back to browser). And web application is used for graphical visualization of data to the user. There is no need for local .exe to send or interact with remote web API. Which architecture or framework do you suggest to use in this case?

See more

Which option do you prefer to go with (considering scalability, and a limited budget):

Technologies in use: Angular / .NET Core 6

What do we want to achieve?

We want to create simple near-time web notifications, those notifications can be categorized into 2 sections:

  • User notification: which represents user activities and engagements.

  • System notification e.g release notes and maintenance time. The notification object is too simple just a title, body, userId, notificationStatus, and readAt. notification status is an enum with 3 values: unread, menuOpened, Read.

Options:

  1. use Firebase Realtime Database for user notifications and Microsoft SQL Server for system notifications (maybe using long poling or so to frequently call the getSystemNotification API ).

  2. use SignalR to push new notifications along with the SqlServer database and store both user and system into one table (as they almost have the same attributes)

See more

SignalR Alternatives & Comparisons

What are some alternatives to SignalR?
Firebase
Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds.
Pusher
Pusher is the category leader in delightful APIs for app developers building communication and collaboration features.
RabbitMQ
RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
WebRTC
It is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple JavaScript APIs. The WebRTC components have been optimized to best serve this purpose.
MQTT
It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
See all alternatives

SignalR's Followers
1129 developers follow SignalR to keep up with related blogs and decisions.