Создание одного и того же концентратора SignalR для всех клиентов

Я только начинаю тестировать SignalR для мониторинга приложения. У меня есть элемент управления, который вызывает вызов концентратора на стороне клиента. Я заметил, что каждый раз, когда клиент делает Connection.Hub.Start(), он создает новый экземпляр Hub на сервере, мне нужно постоянно обновлять свой элемент управления, поэтому я не хочу, чтобы он создавал новый концентратор для каждого из них.

Есть ли способ создать единый концентратор для всех клиентов или я что-то упустил?

Ответ 1

Для каждого запроса создается экземпляр Hub, похожий на экземпляр ASP.NET-страницы для каждого запроса в WebForms, для каждого запроса в ASP.NET MVC создается контроллер, или для каждого сервиса создается экземпляр службы WCF запрос при использовании InstanceMode.PerCall.

Если вы хотите поддерживать разделяемое состояние между запросами/экземплярами хабов, вам нужно будет использовать статическое поле или какую-либо другую более расширенную форму совместного использования состояний (например, вложенные в одиночную систему).