Совместное использование концентратора SignalR между проектом WebApi и MVC

Существует ли рекомендуемый подход для совместного использования концентратора SignalR в двух приложениях?

Фактическая ситуация - это публичный проект WebAPI и внутренний MVC WebApp. То, что я хотел бы сделать, это вызвать методы в концентраторе SignalR из проекта WebAPI и получить результаты этих методов для клиентов, подключенных через приложение MVC.

Будет ли лучший вариант создать третий проект "Hub" и связать ли с ним оба проекта? Если да, то каким образом управляются экземпляры хаба? Могут ли оба приложения получить ссылку на один и тот же концентратор из разных пулов приложений (и, возможно, хостов)?

Я немного читал о GlobalHost.ConnectionManager.GetHubContext, достаточно ли получить эффективный одноэлементный концентратор, который оба приложения могли бы использовать?

Любые мысли получили высокую оценку.

Ответы

Ответ 1

Просто настройте маршрутизацию сигнала signalr через таблицу SQL Server. Он автоматически подключит все концентраторы, используя одну и ту же настройку маршрутизации. Больше ничего не нужно делать, это волшебство.

GlobalHost.DependencyResolver.UseSqlServer(ConfigurationManager.ConnectionStrings["signalr"].ConnectionString);

Вам понадобится следующий пакет nuget: Microsoft.AspNet.SignalR.SqlServer