From c98ac29367ccc72af5d85706b617529a3d9eabf9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 03:17:37 +0000 Subject: [PATCH 01/12] Initial plan From d69b37f98e2d3f96f301b26e925beb755114b34b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 03:20:27 +0000 Subject: [PATCH 02/12] 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> --- aspnetcore/signalr/introduction.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 142acd1a80b6..47710014450b 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -1,11 +1,12 @@ --- title: Overview of ASP.NET Core SignalR +ai-usage: ai-assisted author: wadepickett description: Learn how the ASP.NET Core SignalR library simplifies adding real-time functionality to apps. monikerRange: '>= aspnetcore-2.1' ms.author: wpickett ms.custom: mvc -ms.date: 12/02/2024 +ms.date: 04/19/2026 uid: signalr/introduction --- # Overview of ASP.NET Core SignalR @@ -28,7 +29,10 @@ Here are some features of SignalR for ASP.NET Core: * Handles connection management automatically. * Sends messages to all connected clients simultaneously. For example, a chat room. * Sends messages to specific clients or groups of clients. -* Scales to handle increasing traffic. +* Scales to handle increasing traffic with options such as [Azure SignalR Service](xref:signalr/scale#azure-signalr-service) and [Redis backplane](xref:signalr/scale#redis-backplane). +* Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios (in .NET 9 and later). +* Supports polymorphic type handling in hub methods (in .NET 9 and later). +* Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client (in .NET 9 and later). * [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md) The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR). @@ -41,24 +45,22 @@ SignalR supports the following techniques for handling real-time communication ( * Server-Sent Events * Long Polling -SignalR automatically chooses the best transport method that is within the capabilities of the server and client. +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. ## Hubs SignalR uses *hubs* to communicate between clients and servers. -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. +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 . 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. -[!INCLUDE[](~/includes/SignalR/es6.md)] - ## Additional resources -* [Introduction to ASP.NET Core SignalR](/training/modules/aspnet-core-signalr) * [Get started with SignalR for ASP.NET Core](xref:tutorials/signalr) * [Supported Platforms](xref:signalr/supported-platforms) * [Hubs](xref:signalr/hubs) +* [Logging and diagnostics in ASP.NET Core SignalR](xref:signalr/diagnostics) +* [Hosting and scaling ASP.NET Core SignalR](xref:signalr/scale) * [JavaScript client](xref:signalr/javascript-client) -* [Browsers that don't support ECMAScript 6 (ES6)](xref:signalr/supported-platforms#es6) * From 7783f5ead85b88c9ab1d51a0028064aa74d51305 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 03:21:03 +0000 Subject: [PATCH 03/12] 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> --- aspnetcore/signalr/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 47710014450b..ef77c39a5cd5 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -29,7 +29,7 @@ Here are some features of SignalR for ASP.NET Core: * Handles connection management automatically. * Sends messages to all connected clients simultaneously. For example, a chat room. * Sends messages to specific clients or groups of clients. -* Scales to handle increasing traffic with options such as [Azure SignalR Service](xref:signalr/scale#azure-signalr-service) and [Redis backplane](xref:signalr/scale#redis-backplane). +* Scales to handle increasing traffic with options such as the [Azure SignalR Service](xref:signalr/scale) and [Redis backplane](xref:signalr/redis-backplane). * Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios (in .NET 9 and later). * Supports polymorphic type handling in hub methods (in .NET 9 and later). * Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client (in .NET 9 and later). From 383cc4b63fa778ecf43a3573684a74259668bc3a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 03:21:43 +0000 Subject: [PATCH 04/12] 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> --- aspnetcore/signalr/introduction.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index ef77c39a5cd5..8f5980208ae5 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -30,9 +30,11 @@ Here are some features of SignalR for ASP.NET Core: * Sends messages to all connected clients simultaneously. For example, a chat room. * Sends messages to specific clients or groups of clients. * Scales to handle increasing traffic with options such as the [Azure SignalR Service](xref:signalr/scale) and [Redis backplane](xref:signalr/redis-backplane). -* Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios (in .NET 9 and later). -* Supports polymorphic type handling in hub methods (in .NET 9 and later). -* Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client (in .NET 9 and later). +:::moniker range=">= aspnetcore-9.0" +* Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios. +* Supports polymorphic type handling in hub methods. +* Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client. +:::moniker-end * [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md) The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR). From 631119c2845e76713577675afb1e6c124721ad05 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:00:10 +0000 Subject: [PATCH 05/12] 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> --- aspnetcore/signalr/introduction.md | 10 +++- .../includes/introduction2.1-8.md | 58 ++++++++++++++++++ .../introduction/includes/introduction9.md | 59 +++++++++++++++++++ 3 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 aspnetcore/signalr/introduction/includes/introduction2.1-8.md create mode 100644 aspnetcore/signalr/introduction/includes/introduction9.md diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 8f5980208ae5..e0344c1e2d53 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -11,6 +11,8 @@ uid: signalr/introduction --- # Overview of ASP.NET Core SignalR +:::moniker range=">= aspnetcore-10.0" + ## What is SignalR? 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. @@ -30,11 +32,9 @@ Here are some features of SignalR for ASP.NET Core: * Sends messages to all connected clients simultaneously. For example, a chat room. * Sends messages to specific clients or groups of clients. * Scales to handle increasing traffic with options such as the [Azure SignalR Service](xref:signalr/scale) and [Redis backplane](xref:signalr/redis-backplane). -:::moniker range=">= aspnetcore-9.0" * Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios. * Supports polymorphic type handling in hub methods. * Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client. -:::moniker-end * [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md) The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR). @@ -66,3 +66,9 @@ Hubs call client-side code by sending messages that contain the name and paramet * [Hosting and scaling ASP.NET Core SignalR](xref:signalr/scale) * [JavaScript client](xref:signalr/javascript-client) * + +:::moniker-end + +[!INCLUDE[](~/signalr/introduction/includes/introduction9.md)] + +[!INCLUDE[](~/signalr/introduction/includes/introduction2.1-8.md)] diff --git a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md new file mode 100644 index 000000000000..23b4ff28f2c5 --- /dev/null +++ b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md @@ -0,0 +1,58 @@ +:::moniker range=">= aspnetcore-2.1 <= aspnetcore-8.0" + +# Overview of ASP.NET Core SignalR + +## What is SignalR? + +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. + +Good candidates for SignalR: + +* Apps that require high frequency updates from the server. Examples are gaming, social networks, voting, auction, maps, and GPS apps. +* Dashboards and monitoring apps. Examples include company dashboards, instant sales updates, or travel alerts. +* Collaborative apps. Whiteboard apps and team meeting software are examples of collaborative apps. +* Apps that require notifications. Social networks, email, chat, games, travel alerts, and many other apps use notifications. + +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. + +Here are some features of SignalR for ASP.NET Core: + +* Handles connection management automatically. +* Sends messages to all connected clients simultaneously. For example, a chat room. +* Sends messages to specific clients or groups of clients. +* Scales to handle increasing traffic. +* [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md) + +The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR). + +## Transports + +SignalR supports the following techniques for handling real-time communication (in order of graceful fallback): + +* [WebSockets](xref:fundamentals/websockets) +* Server-Sent Events +* Long Polling + +SignalR automatically chooses the best transport method that is within the capabilities of the server and client. + +## Hubs + +SignalR uses *hubs* to communicate between clients and servers. + +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. + +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. + +[!INCLUDE[](~/includes/SignalR/es6.md)] + +## Additional resources + +* [Introduction to ASP.NET Core SignalR](/training/modules/aspnet-core-signalr) +* [Get started with SignalR for ASP.NET Core](xref:tutorials/signalr) +* [Supported Platforms](xref:signalr/supported-platforms) +* [Hubs](xref:signalr/hubs) +* [JavaScript client](xref:signalr/javascript-client) +* [Browsers that don't support ECMAScript 6 (ES6)](xref:signalr/supported-platforms#es6) +* + +:::moniker-end diff --git a/aspnetcore/signalr/introduction/includes/introduction9.md b/aspnetcore/signalr/introduction/includes/introduction9.md new file mode 100644 index 000000000000..60bfa0acef4e --- /dev/null +++ b/aspnetcore/signalr/introduction/includes/introduction9.md @@ -0,0 +1,59 @@ +:::moniker range="= aspnetcore-9.0" + +# Overview of ASP.NET Core SignalR + +## What is SignalR? + +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. + +Good candidates for SignalR: + +* Apps that require high frequency updates from the server. Examples are gaming, social networks, voting, auction, maps, and GPS apps. +* Dashboards and monitoring apps. Examples include company dashboards, instant sales updates, or travel alerts. +* Collaborative apps. Whiteboard apps and team meeting software are examples of collaborative apps. +* Apps that require notifications. Social networks, email, chat, games, travel alerts, and many other apps use notifications. + +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. + +Here are some features of SignalR for ASP.NET Core: + +* Handles connection management automatically. +* Sends messages to all connected clients simultaneously. For example, a chat room. +* Sends messages to specific clients or groups of clients. +* Scales to handle increasing traffic with options such as the [Azure SignalR Service](xref:signalr/scale) and [Redis backplane](xref:signalr/redis-backplane). +* Supports trimming and native ahead-of-time (AOT) compilation for supported scenarios. +* Supports polymorphic type handling in hub methods. +* Supports distributed tracing with `ActivitySource` for SignalR hub server and .NET client. +* [SignalR Hub Protocol](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/HubProtocol.md) + +The source is hosted in a [SignalR repository on GitHub](https://github.com/dotnet/AspNetCore/tree/main/src/SignalR). + +## Transports + +SignalR supports the following techniques for handling real-time communication (in order of graceful fallback): + +* [WebSockets](xref:fundamentals/websockets) +* Server-Sent Events +* Long Polling + +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. + +## Hubs + +SignalR uses *hubs* to communicate between clients and servers. + +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 . + +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. + +## Additional resources + +* [Get started with SignalR for ASP.NET Core](xref:tutorials/signalr) +* [Supported Platforms](xref:signalr/supported-platforms) +* [Hubs](xref:signalr/hubs) +* [Logging and diagnostics in ASP.NET Core SignalR](xref:signalr/diagnostics) +* [Hosting and scaling ASP.NET Core SignalR](xref:signalr/scale) +* [JavaScript client](xref:signalr/javascript-client) +* + +:::moniker-end From 8c5b6fd35340e18b6e04a9506ab30b08c8c7427e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:00:50 +0000 Subject: [PATCH 06/12] 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> --- aspnetcore/signalr/introduction.md | 1 - 1 file changed, 1 deletion(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index e0344c1e2d53..4e741d40e2f5 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -10,7 +10,6 @@ ms.date: 04/19/2026 uid: signalr/introduction --- # Overview of ASP.NET Core SignalR - :::moniker range=">= aspnetcore-10.0" ## What is SignalR? From a1b6d6fe7f2e9ad52a68acb132fe5bcb2d5b6fb4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:01:46 +0000 Subject: [PATCH 07/12] 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> --- aspnetcore/signalr/introduction.md | 1 + aspnetcore/signalr/introduction/includes/introduction2.1-8.md | 2 +- aspnetcore/signalr/introduction/includes/introduction9.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 4e741d40e2f5..e0344c1e2d53 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -10,6 +10,7 @@ ms.date: 04/19/2026 uid: signalr/introduction --- # Overview of ASP.NET Core SignalR + :::moniker range=">= aspnetcore-10.0" ## What is SignalR? diff --git a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md index 23b4ff28f2c5..cb0f690d5365 100644 --- a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md +++ b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md @@ -39,7 +39,7 @@ SignalR automatically chooses the best transport method that is within the capab SignalR uses *hubs* to communicate between clients and servers. -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. +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. 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. diff --git a/aspnetcore/signalr/introduction/includes/introduction9.md b/aspnetcore/signalr/introduction/includes/introduction9.md index 60bfa0acef4e..cdf2fba3b0fa 100644 --- a/aspnetcore/signalr/introduction/includes/introduction9.md +++ b/aspnetcore/signalr/introduction/includes/introduction9.md @@ -42,7 +42,7 @@ SignalR automatically chooses the best transport method that is within the capab SignalR uses *hubs* to communicate between clients and servers. -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 . +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 . 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. From 133cdbc9081f46e89551c29828bc676c711bc056 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:02:30 +0000 Subject: [PATCH 08/12] 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> --- aspnetcore/signalr/introduction/includes/introduction2.1-8.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md index cb0f690d5365..3b127783c559 100644 --- a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md +++ b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md @@ -33,7 +33,7 @@ SignalR supports the following techniques for handling real-time communication ( * Server-Sent Events * Long Polling -SignalR automatically chooses the best transport method that is within the capabilities of the server and client. +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. ## Hubs From f51ee6266e12a8ed4b4eca4c5a75f572a4c363e8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 22:08:50 +0000 Subject: [PATCH 09/12] 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> --- aspnetcore/signalr/introduction.md | 1 - aspnetcore/signalr/introduction/includes/introduction2.1-8.md | 2 -- aspnetcore/signalr/introduction/includes/introduction9.md | 2 -- 3 files changed, 5 deletions(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index e0344c1e2d53..4e741d40e2f5 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -10,7 +10,6 @@ ms.date: 04/19/2026 uid: signalr/introduction --- # Overview of ASP.NET Core SignalR - :::moniker range=">= aspnetcore-10.0" ## What is SignalR? diff --git a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md index 3b127783c559..e7d95f9bfcae 100644 --- a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md +++ b/aspnetcore/signalr/introduction/includes/introduction2.1-8.md @@ -1,7 +1,5 @@ :::moniker range=">= aspnetcore-2.1 <= aspnetcore-8.0" -# Overview of ASP.NET Core SignalR - ## What is SignalR? 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. diff --git a/aspnetcore/signalr/introduction/includes/introduction9.md b/aspnetcore/signalr/introduction/includes/introduction9.md index cdf2fba3b0fa..2e652065f37c 100644 --- a/aspnetcore/signalr/introduction/includes/introduction9.md +++ b/aspnetcore/signalr/introduction/includes/introduction9.md @@ -1,7 +1,5 @@ :::moniker range="= aspnetcore-9.0" -# Overview of ASP.NET Core SignalR - ## What is SignalR? 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. From fbe0420c67e9ce60d3758809e50b8b7bf9f0e8db Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Apr 2026 19:28:03 +0000 Subject: [PATCH 10/12] 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> --- aspnetcore/signalr/introduction.md | 2 +- .../includes/{introduction2.1-8.md => introduction-2-8.md} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename aspnetcore/signalr/introduction/includes/{introduction2.1-8.md => introduction-2-8.md} (100%) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 4e741d40e2f5..4ea8d45136b6 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -70,4 +70,4 @@ Hubs call client-side code by sending messages that contain the name and paramet [!INCLUDE[](~/signalr/introduction/includes/introduction9.md)] -[!INCLUDE[](~/signalr/introduction/includes/introduction2.1-8.md)] +[!INCLUDE[](~/signalr/introduction/includes/introduction-2-8.md)] diff --git a/aspnetcore/signalr/introduction/includes/introduction2.1-8.md b/aspnetcore/signalr/introduction/includes/introduction-2-8.md similarity index 100% rename from aspnetcore/signalr/introduction/includes/introduction2.1-8.md rename to aspnetcore/signalr/introduction/includes/introduction-2-8.md From 5c3465c32182e2975ce1a40b24da974c83e5703f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:16:12 +0000 Subject: [PATCH 11/12] 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> --- aspnetcore/signalr/introduction.md | 2 +- .../includes/{introduction9.md => introduction-9.md} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename aspnetcore/signalr/introduction/includes/{introduction9.md => introduction-9.md} (100%) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 4ea8d45136b6..392e7d4fc3d3 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -68,6 +68,6 @@ Hubs call client-side code by sending messages that contain the name and paramet :::moniker-end -[!INCLUDE[](~/signalr/introduction/includes/introduction9.md)] +[!INCLUDE[](~/signalr/introduction/includes/introduction-9.md)] [!INCLUDE[](~/signalr/introduction/includes/introduction-2-8.md)] diff --git a/aspnetcore/signalr/introduction/includes/introduction9.md b/aspnetcore/signalr/introduction/includes/introduction-9.md similarity index 100% rename from aspnetcore/signalr/introduction/includes/introduction9.md rename to aspnetcore/signalr/introduction/includes/introduction-9.md From 3f22ecdd418f5722ca0ec116751ba4fada95d643 Mon Sep 17 00:00:00 2001 From: wadepickett Date: Mon, 20 Apr 2026 14:11:05 -0700 Subject: [PATCH 12/12] Fixed inconsistancies and version specific issues --- aspnetcore/signalr/introduction.md | 10 ++++++---- .../signalr/introduction/includes/introduction-2-8.md | 4 ++-- .../signalr/introduction/includes/introduction-9.md | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/aspnetcore/signalr/introduction.md b/aspnetcore/signalr/introduction.md index 392e7d4fc3d3..934586db1861 100644 --- a/aspnetcore/signalr/introduction.md +++ b/aspnetcore/signalr/introduction.md @@ -2,14 +2,16 @@ title: Overview of ASP.NET Core SignalR ai-usage: ai-assisted author: wadepickett -description: Learn how the ASP.NET Core SignalR library simplifies adding real-time functionality to apps. +description: "ASP.NET Core SignalR introduction: Add real-time capabilities to your apps with automatic connection management and scalable messaging solutions." monikerRange: '>= aspnetcore-2.1' ms.author: wpickett +ms.reviewer: wpickett ms.custom: mvc -ms.date: 04/19/2026 +ms.date: 04/20/2026 uid: signalr/introduction --- # Overview of ASP.NET Core SignalR + :::moniker range=">= aspnetcore-10.0" ## What is SignalR? @@ -52,9 +54,9 @@ SignalR automatically chooses the best transport method that is within the capab SignalR uses *hubs* to communicate between clients and servers. -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 . +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 . -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. +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. ## Additional resources diff --git a/aspnetcore/signalr/introduction/includes/introduction-2-8.md b/aspnetcore/signalr/introduction/includes/introduction-2-8.md index e7d95f9bfcae..7e2842cc0a21 100644 --- a/aspnetcore/signalr/introduction/includes/introduction-2-8.md +++ b/aspnetcore/signalr/introduction/includes/introduction-2-8.md @@ -31,13 +31,13 @@ SignalR supports the following techniques for handling real-time communication ( * Server-Sent Events * Long Polling -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. +SignalR automatically chooses the best transport method that is within the capabilities of the server and client. ## Hubs SignalR uses *hubs* to communicate between clients and servers. -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. +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. 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. diff --git a/aspnetcore/signalr/introduction/includes/introduction-9.md b/aspnetcore/signalr/introduction/includes/introduction-9.md index 2e652065f37c..1bcca4bda619 100644 --- a/aspnetcore/signalr/introduction/includes/introduction-9.md +++ b/aspnetcore/signalr/introduction/includes/introduction-9.md @@ -40,7 +40,7 @@ SignalR automatically chooses the best transport method that is within the capab SignalR uses *hubs* to communicate between clients and servers. -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 . +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 . 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.