Skip to content

Commit 7df4da1

Browse files
Copilotwadepickett
andauthored
Update SignalR overview content for .NET 10 with include-based version architecture (#37026)
* Initial plan * Refresh SignalR overview article for .NET 10 Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/af3ed848-dd44-4d3b-ba13-d1a5f8548644 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Fix SignalR overview xref links for scaling options Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/af3ed848-dd44-4d3b-ba13-d1a5f8548644 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Gate .NET 9+ SignalR features with moniker Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/af3ed848-dd44-4d3b-ba13-d1a5f8548644 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Restructure SignalR introduction with include-based version files Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/25e3cb1a-8717-4f48-8e0b-9b3f6b9d2f04 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Adjust SignalR intro moniker placement formatting Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/25e3cb1a-8717-4f48-8e0b-9b3f6b9d2f04 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Apply style fixes for SignalR introduction include files Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/25e3cb1a-8717-4f48-8e0b-9b3f6b9d2f04 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Align transport guidance in legacy SignalR introduction include Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/25e3cb1a-8717-4f48-8e0b-9b3f6b9d2f04 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Remove duplicate SignalR overview heading from version includes Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/8e08178d-1811-4b20-a05c-9aa3d0c8493e Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Rename SignalR include file for 2-8 range Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/1c1c3389-8f31-457d-bf61-d29065279e77 Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Rename SignalR include file for version 9 Agent-Logs-Url: https://github.com/dotnet/AspNetCore.Docs/sessions/9db6849c-c5b7-4acf-925c-bcb80b10fccc Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> * Fixed inconsistancies and version specific issues --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wadepickett <10985336+wadepickett@users.noreply.github.com> Co-authored-by: wadepickett <wpickett@microsoft.com>
1 parent 2cbc9aa commit 7df4da1

3 files changed

Lines changed: 134 additions & 10 deletions

File tree

aspnetcore/signalr/introduction.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
---
22
title: Overview of ASP.NET Core SignalR
3+
ai-usage: ai-assisted
34
author: wadepickett
4-
description: Learn how the ASP.NET Core SignalR library simplifies adding real-time functionality to apps.
5+
description: "ASP.NET Core SignalR introduction: Add real-time capabilities to your apps with automatic connection management and scalable messaging solutions."
56
monikerRange: '>= aspnetcore-2.1'
67
ms.author: wpickett
8+
ms.reviewer: wpickett
79
ms.custom: mvc
8-
ms.date: 12/02/2024
10+
ms.date: 04/20/2026
911
uid: signalr/introduction
1012
---
1113
# Overview of ASP.NET Core SignalR
1214

15+
:::moniker range=">= aspnetcore-10.0"
16+
1317
## What is SignalR?
1418

1519
ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Real-time web functionality enables server-side code to push content to clients instantly.
@@ -28,7 +32,10 @@ Here are some features of SignalR for ASP.NET Core:
2832
* Handles connection management automatically.
2933
* Sends messages to all connected clients simultaneously. For example, a chat room.
3034
* Sends messages to specific clients or groups of clients.
31-
* Scales to handle increasing traffic.
35+
* Scales to handle increasing traffic with options such as the [Azure SignalR Service](xref:signalr/scale) and [Redis backplane](xref:signalr/redis-backplane).
36+
* Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios.
37+
* Supports polymorphic type handling in hub methods.
38+
* Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client.
3239
* [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md)
3340

3441
The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR).
@@ -41,24 +48,28 @@ SignalR supports the following techniques for handling real-time communication (
4148
* Server-Sent Events
4249
* Long Polling
4350

44-
SignalR automatically chooses the best transport method that is within the capabilities of the server and client.
51+
SignalR automatically chooses the best transport method that is within the capabilities of the server and client. WebSockets is the preferred transport because it generally provides the best performance.
4552

4653
## Hubs
4754

4855
SignalR uses *hubs* to communicate between clients and servers.
4956

50-
A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. You can pass strongly-typed parameters to methods, which enables model binding. SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on [MessagePack](https://msgpack.org/). MessagePack generally creates smaller messages compared to JSON. Older browsers must support [XHR level 2](https://caniuse.com/#feat=xhr2) to provide MessagePack protocol support.
51-
52-
Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Objects sent as method parameters are deserialized using the configured protocol. The client tries to match the name to a method in the client-side code. When the client finds a match, it calls the method and passes to it the deserialized parameter data.
57+
A hub is a high-level pipeline that a client and server use to call methods on each other. SignalR automatically handles the dispatching across machine boundaries, so clients can call methods on the server and vice versa. You can pass strongly typed parameters to methods, which enables model binding. SignalR supports two built-in hub protocols: a text protocol based on JSON (default) and a binary protocol based on MessagePack. MessagePack generally creates smaller messages compared to JSON. For more information, see <xref:signalr/messagepackhubprotocol>.
5358

54-
[!INCLUDE[](~/includes/SignalR/es6.md)]
59+
Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. The configured protocol deserializes objects sent as method parameters. The client tries to match the name to a method in the client-side code. When the client finds a match, it calls the method and passes the deserialized parameter data.
5560

5661
## Additional resources
5762

58-
* [Introduction to ASP.NET Core SignalR](/training/modules/aspnet-core-signalr)
5963
* [Get started with SignalR for ASP.NET Core](xref:tutorials/signalr)
6064
* [Supported Platforms](xref:signalr/supported-platforms)
6165
* [Hubs](xref:signalr/hubs)
66+
* [Logging and diagnostics in ASP.NET Core SignalR](xref:signalr/diagnostics)
67+
* [Hosting and scaling ASP.NET Core SignalR](xref:signalr/scale)
6268
* [JavaScript client](xref:signalr/javascript-client)
63-
* [Browsers that don't support ECMAScript 6 (ES6)](xref:signalr/supported-platforms#es6)
6469
* <xref:blazor/fundamentals/signalr>
70+
71+
:::moniker-end
72+
73+
[!INCLUDE[](~/signalr/introduction/includes/introduction-9.md)]
74+
75+
[!INCLUDE[](~/signalr/introduction/includes/introduction-2-8.md)]
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
:::moniker range=">= aspnetcore-2.1 <= aspnetcore-8.0"
2+
3+
## What is SignalR?
4+
5+
ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Real-time web functionality enables server-side code to push content to clients instantly.
6+
7+
Good candidates for SignalR:
8+
9+
* Apps that require high frequency updates from the server. Examples are gaming, social networks, voting, auction, maps, and GPS apps.
10+
* Dashboards and monitoring apps. Examples include company dashboards, instant sales updates, or travel alerts.
11+
* Collaborative apps. Whiteboard apps and team meeting software are examples of collaborative apps.
12+
* Apps that require notifications. Social networks, email, chat, games, travel alerts, and many other apps use notifications.
13+
14+
SignalR provides an API for creating server-to-client [remote procedure calls (RPC)](https://wikipedia.org/wiki/Remote_procedure_call). The RPCs invoke functions on clients from server-side .NET code. There are several [supported platforms](xref:signalr/supported-platforms), each with their respective client SDK. Because of this, the programming language being invoked by the RPC call varies.
15+
16+
Here are some features of SignalR for ASP.NET Core:
17+
18+
* Handles connection management automatically.
19+
* Sends messages to all connected clients simultaneously. For example, a chat room.
20+
* Sends messages to specific clients or groups of clients.
21+
* Scales to handle increasing traffic.
22+
* [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md)
23+
24+
The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR).
25+
26+
## Transports
27+
28+
SignalR supports the following techniques for handling real-time communication (in order of graceful fallback):
29+
30+
* [WebSockets](xref:fundamentals/websockets)
31+
* Server-Sent Events
32+
* Long Polling
33+
34+
SignalR automatically chooses the best transport method that is within the capabilities of the server and client.
35+
36+
## Hubs
37+
38+
SignalR uses *hubs* to communicate between clients and servers.
39+
40+
A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. You can pass strongly-typed parameters to methods, which enables model binding. SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on [MessagePack](https://msgpack.org/). MessagePack generally creates smaller messages compared to JSON. Older browsers must support [XHR level 2](https://caniuse.com/#feat=xhr2) to provide MessagePack protocol support.
41+
42+
Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Objects sent as method parameters are deserialized using the configured protocol. The client tries to match the name to a method in the client-side code. When the client finds a match, it calls the method and passes to it the deserialized parameter data.
43+
44+
[!INCLUDE[](~/includes/SignalR/es6.md)]
45+
46+
## Additional resources
47+
48+
* [Introduction to ASP.NET Core SignalR](/training/modules/aspnet-core-signalr)
49+
* [Get started with SignalR for ASP.NET Core](xref:tutorials/signalr)
50+
* [Supported Platforms](xref:signalr/supported-platforms)
51+
* [Hubs](xref:signalr/hubs)
52+
* [JavaScript client](xref:signalr/javascript-client)
53+
* [Browsers that don't support ECMAScript 6 (ES6)](xref:signalr/supported-platforms#es6)
54+
* <xref:blazor/fundamentals/signalr>
55+
56+
:::moniker-end
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
:::moniker range="= aspnetcore-9.0"
2+
3+
## What is SignalR?
4+
5+
ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. Real-time web functionality enables server-side code to push content to clients instantly.
6+
7+
Good candidates for SignalR:
8+
9+
* Apps that require high frequency updates from the server. Examples are gaming, social networks, voting, auction, maps, and GPS apps.
10+
* Dashboards and monitoring apps. Examples include company dashboards, instant sales updates, or travel alerts.
11+
* Collaborative apps. Whiteboard apps and team meeting software are examples of collaborative apps.
12+
* Apps that require notifications. Social networks, email, chat, games, travel alerts, and many other apps use notifications.
13+
14+
SignalR provides an API for creating server-to-client [remote procedure calls (RPC)](https://wikipedia.org/wiki/Remote_procedure_call). The RPCs invoke functions on clients from server-side .NET code. There are several [supported platforms](xref:signalr/supported-platforms), each with their respective client SDK. Because of this, the programming language being invoked by the RPC call varies.
15+
16+
Here are some features of SignalR for ASP.NET Core:
17+
18+
* Handles connection management automatically.
19+
* Sends messages to all connected clients simultaneously. For example, a chat room.
20+
* Sends messages to specific clients or groups of clients.
21+
* Scales to handle increasing traffic with options such as the [Azure SignalR Service](xref:signalr/scale) and [Redis backplane](xref:signalr/redis-backplane).
22+
* Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios.
23+
* Supports polymorphic type handling in hub methods.
24+
* Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client.
25+
* [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md)
26+
27+
The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR).
28+
29+
## Transports
30+
31+
SignalR supports the following techniques for handling real-time communication (in order of graceful fallback):
32+
33+
* [WebSockets](xref:fundamentals/websockets)
34+
* Server-Sent Events
35+
* Long Polling
36+
37+
SignalR automatically chooses the best transport method that is within the capabilities of the server and client. WebSockets is the preferred transport because it generally provides the best performance.
38+
39+
## Hubs
40+
41+
SignalR uses *hubs* to communicate between clients and servers.
42+
43+
A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. You can pass strongly-typed parameters to methods, which enables model binding. SignalR supports two built-in hub protocols: a text protocol based on JSON (default) and a binary protocol based on MessagePack. MessagePack generally creates smaller messages compared to JSON. For more information, see <xref:signalr/messagepackhubprotocol>.
44+
45+
Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. Objects sent as method parameters are deserialized using the configured protocol. The client tries to match the name to a method in the client-side code. When the client finds a match, it calls the method and passes to it the deserialized parameter data.
46+
47+
## Additional resources
48+
49+
* [Get started with SignalR for ASP.NET Core](xref:tutorials/signalr)
50+
* [Supported Platforms](xref:signalr/supported-platforms)
51+
* [Hubs](xref:signalr/hubs)
52+
* [Logging and diagnostics in ASP.NET Core SignalR](xref:signalr/diagnostics)
53+
* [Hosting and scaling ASP.NET Core SignalR](xref:signalr/scale)
54+
* [JavaScript client](xref:signalr/javascript-client)
55+
* <xref:blazor/fundamentals/signalr>
56+
57+
:::moniker-end

0 commit comments

Comments
 (0)