Wie kann ich SignalR Core Hub-Methode von Controller aufrufen?
Ich verwende ASP.NET Core 2.0 mit Microsoft.AspNetCore.SignalR (1.0.0-alpha2-final).Call SignalR Core Hub-Methode vom Controller
Ich habe Windows-Dienst, die mit Excel, SolidEdge kommunizieren ... Wenn der Vorgang abgeschlossen ist, posten Anfrage an meinen Controller in ASP.NET Core-Anwendung. Jetzt muss ich alle mit dem Server verbundenen Clients mit SignalR informieren, dass das externe Programm eine Aufgabe erledigt hat.
Ich kann nicht ändern, wie Fensterdienst funktioniert. (Verbindung mit SignalR vom Fensterdienst nicht möglich).
Ich fand viel Lösung für alte SignalR (GlobalHost.ConnectionManager.GetHubContext
), aber viel hat sich geändert und diese Lösungen funktionieren nicht mehr.
Mein Controller:
[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);
}
}
Meine Nabe:
public class VarDesignHub : Hub
{
public async Task TaskCompleted(int id)
{
await Clients.All.InvokeAsync("Completed", id);
}
}
Diese Antwort ist großartig. Danke, aber es beantwortet meine Frage nicht wirklich. Es wird es für jetzt tun. Aber früher oder später muss ich die Hub-Methode aufrufen. Keine Nachricht an alle Clients senden. – Makla
@Makla: Ich habe die Antwort geändert siehe Link – Tester
@Makla: Ich habe eine bessere Lösung gefunden. Siehe Lösung 2. Ich denke, das wird dir helfen. – Tester