您必须从以下位置提取当前的 github 版本:信号员 Github https://github.com/aspnet/SignalR-Server(犯罪: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",
现在保存文件,依赖项将更新。
对 The 做同样的事情消息传递 and 基础设施project.json 文件,将任何 1.1.0-* 替换为 1.0.0
完成后,您可以将项目引用添加到 Microsoft.AspNetCore.SignalR.Server 的主项目中
现在你已经加载了,打开你的启动.cs
在 - 的里面配置服务方法,添加:
services.AddSignalR();
在 - 的里面配置方法添加:
app.UseSignalR();
接下来,添加 using 语句并导入基础结构命名空间,如下所示:
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();