您必须从 Signalr Github 拉取当前的 github 版本
(在撰写本文时提交:b95ac7b)
一旦你有了这个,并且已经加载了解决方案,或者将所有三个项目添加到你现有的解决方案中,你将需要在所有三个项目中更改 project.json。
Microsoft.AspNetCore.SignalR.Server - project.json
您将看到对每个程序集版本 1.1.0-* (RC3) 的引用。
将这些更改为当前的 RC2,直到您看到以下内容
"Microsoft.AspNetCore.DataProtection": "1.0.0",
"Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0",
"Microsoft.AspNetCore.Http.Extensions": "1.0.0",
"Microsoft.Extensions.DependencyModel": "1.0.0",
现在保存文件,依赖项将更新。
对 Messaging 和 Infrastructure project.json 文件执行相同操作,将任何 1.1.0-* 替换为 1.0.0
完成后,您可以将项目引用添加到 Microsoft.AspNetCore.SignalR.Server 的主项目
现在你已经加载了,打开你的 Startup.cs
在 ConfigureServices 方法中,添加:
services.AddSignalR();
在Configure方法里面添加:
app.UseSignalR();
接下来,添加 using 语句并导入 Infrastructure 命名空间,如下所示:
using Microsoft.AspNetCore.SignalR.Infrastructure;
最后在 Startup.cs 中创建一个名为 ConnectionManager 的静态属性,如下所示:
public static IConnectionManager ConnectionManager;
最后在 Startup.cs 的 Configure 方法中添加一个 IServiceProvider 属性(需要导入 System 命名空间)。然后从这里加载 ConfigurationManager。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
ConnectionManager = serviceProvider.GetService<IConnectionManager>();
现在,在您的集线器/其他任何地方,而不是使用 Globalhost,只需使用启动。例如:
IHubContext context = Startup.ConnectionManager.GetHubContext<SomeHub>();
context.Clients.All.someMethod();