如何使用 ASP.NET Core 2.1 连接到 SignalR 集线器

How can I connect to a SignalR hub using ASP.NET Core 2.1

我正在尝试从 ASP.NET Core 2.1 项目连接到 SignalR 集线器。 查看此处的文档:https://docs.microsoft.com/en-us/aspnet/core/signalr/dotnet-client?view=aspnetcore-2.2,它说需要对 Microsoft.AspNetCore.SignalR.Client 的包引用。

查看此库的 NuGet 站点 (https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR.Client/),没有可用的 .NET Core 2.X 版本。

怎么没有2.1的可用版本?如果不是,我可以使用什么库连接到使用 .NET Core 2.1 的 SignalR 集线器 Microsoft.AspNetCore.SignalR.Client

实际上,在 .net core 2.1 中使用最新的 SignalR 稳定包 (@aspnet/signalr@1) 不会遇到任何问题。
请参阅 related doc 了解更多信息。

SignalR 版本号有点混乱,因为 SignalR 实际上不适用于 ASP.NET 核心 1.x,但后来随 2.x 一起提供。它在一个单独的生命周期中发布,您也可以通过 Microsoft.AspNetCore.SignalR 包的版本看到它。所以基本上,这些数字与 ASP.NET 核心版本非常不同步。

他们正在 ASP.NET Core 3 中修复该问题,其中 SignalR 及其客户端将成为 ASP.NET Core 的常规部分,与框架一起正常发布并共享版本号。

对于 2.x 这基本上意味着您只需选择最新的 SignalR 1.x。要验证最佳版本,您还应该查看 Microsoft.AspNetCore.SignalR.Core 的依赖项,这是客户端和服务器包的基本依赖项。你会看到它也依赖于 Microsoft.AspNetCore.Authorization。所以这应该是你使用哪个版本的指标 ASP.NET Core.

总结一下: