public class ComputerHub : Hub
{
private readonly DbContext _db;
public ComputerHub(DbContext db)
{
_db = db;
}
public Task OpenLock(string connectionId)
{
return Clients.Client(connectionId).SendAsync("OpenLock");
}
...
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSignalR();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
....
app.UseSignalR(routes =>
{
routes.MapHub<ComputerHub>("/computerhub");
});
....
}
我想在控制器中访问OpenLock方法。我应该如何在startup.cs中向ServiceCollection添加computerhub。
答案 0 :(得分:1)
您似乎不明白这是如何运作的。要简单回答您的问题,直接注入类,只需要在服务集合中注册,就像任何其他依赖项一样:
Article
然而,这不会做你想要的。班级本身没有做任何事情。它是以其权力赋予它的枢纽环境。如果您只是注入类的实例而没有集线器上下文,那么services.AddScoped<ComputerHub>();
(您想要使用的方法使用的)将不会被设置,并且将不具备它们所需的任何功能实际做任何有用的事情。