最佳答案
如何从 Controller 调用 SignalR Core Hub 方法?
我正在使用 ASP.NET Core 2.0和 Microsoft. AspNetCore. SignalR (1.0.0-alpha2-final)。
我有窗口服务,通信与 Excel,SolidEdge... 当操作完成后,它后请求我的控制器在 ASP.NET 核心应用程序。现在我需要通知所有连接到 SignalR 服务器的客户端,外部程序完成了一些任务。
我无法改变窗口服务的工作方式。(无法从窗口服务连接到 SignalR)。
我为老 SignalR (GlobalHost.ConnectionManager.GetHubContext
)找到了很多解决方案,但是很多都改变了,那些解决方案不再有效。
我的控制器:
[Route("API/vardesigncomm")]
public class VarDesignCommController : Controller
{
[HttpPut("ProcessVarDesignCommResponse/{id}")]
public async Task<IActionResult> ProcessVarDesignCommResponse(int id)
{
//call method TaskCompleted in Hub !!!! How?
return new JsonResult(true);
}
}
我的中心:
public class VarDesignHub : Hub
{
public async Task TaskCompleted(int id)
{
await Clients.All.InvokeAsync("Completed", id);
}
}