Hub
и IHubContext<THub>
все еще там.Вместо статического GlobalHost
вы бы использовали внедрение зависимостей.
Я не буду давать вам прямой перевод вашего абстрактного контроллера, поскольку я считаю, что это на самом деле не так уж и полезно: при условии, что у вас есть контроллерэто просто берет один контекст концентратора (вместо других зависимостей), кажется, предполагает довольно много.И ленивый шаблон здесь на самом деле не нужен.
Таким образом, вместо этого показан пример реализации контроллера, который использует контекст концентратора как часть своих зависимостей:
public class ExampleController : ControllerBase
{
private readonly IHubContext<MyHub> _myHubContext;
public ExampleController(IHubContext<MyHub> myHubContext)
{
_myHubContext = myHubContext;
}
[HttpPost]
public async Task<IActionResult> PostMessage(string message)
{
await _myHubContext.Clients.All.SendAsync("DoSomething", message);
return Ok();
}
}
Я бы также предложил вамвзглянуть на строго типизированные хабы , поскольку они делают использование хаб-контекста немного приятнее.