Chame o método SignalR Core Hub do Controller
Como posso chamar o método SignalR Core Hub no Controller?
Estou usando o ASP.NET Core 2.0 com Microsoft.AspNetCore.SignalR (1.0.0-alpha2-final).
Eu tenho o serviço windows que se comunica com o Excel, SolidEdge ... Quando a operação é concluída, publique a solicitação no meu controlador no aplicativo ASP.NET Core. Agora, preciso informar todos os clientes conectados ao servidor com SignalR que o programa externo concluiu alguma tarefa.
Não consigo alterar a maneira como o serviço da janela funciona. (Não é possível conectar ao SignalR a partir do serviço da janela).
Encontrei bastante solução para o antigo SignalR (GlobalHost.ConnectionManager.GetHubContext
), mas muita coisa mudou e essas soluções não estão mais funcionando.
Meu controlador:
[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);
}
}
Meu hub:
public class VarDesignHub : Hub
{
public async Task TaskCompleted(int id)
{
await Clients.All.InvokeAsync("Completed", id);
}
}