Как я могу вызвать метод SignalR Core Hub из Controller?
Я использую ASP.NET Core 2.0 с Microsoft.AspNetCore.SignalR(1.0.0-alpha2-final).
У меня есть служба Windows, которая связывается с Excel, SolidEdge... Когда операция завершена, он отправляет запрос моему контроллеру в приложении ASP.NET Core. Теперь мне нужно сообщить всем клиентам, подключенным к серверу с 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);
}
}