Comment puis-je appeler la méthode SignalR Core Hub à partir du contrôleur ?
J'utilise ASP.NET Core 2.0 avec Microsoft.AspNetCore.SignalR (1.0.0-alpha2-final).
J'ai un service Windows qui communique avec Excel, SolidEdge ... Lorsque l'opération est terminée, il envoie une requête à mon contrôleur dans l'application ASP.NET Core. J'ai maintenant besoin d'informer tous les clients connectés au serveur avec SignalR que le programme externe a terminé une tâche.
Je ne peux pas changer la façon dont le service des fenêtres fonctionne. (Impossible de se connecter à SignalR depuis le service fenêtre).
J'ai trouvé une solution complète pour l'ancien SignalR ( GlobalHost.ConnectionManager.GetHubContext
), mais beaucoup de choses ont changé et ces solutions ne fonctionnent plus.
Mon contrôleur :
[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);
}
}
Mon hub :
public class VarDesignHub : Hub
{
public async Task TaskCompleted(int id)
{
await Clients.All.InvokeAsync("Completed", id);
}
}