Когда называется конструктор концентратора SignalR?
Я пытаюсь отладить концентратор SignalR и заметил, что конструктор вызывается несколько раз, даже с одним клиентом. Это ожидаемое поведение? Я ожидал, что конструктор будет вызван только один раз для инициализации класса, но я несколько раз ударяю по своей точке останова.
Ответы
Ответ 1
В экземпляре SignalR Hub будет создан для каждого запроса. Так что неважно, есть ли только один клиент или больше.
Фактически, Hub является абстракцией над PersistentConnection, если вы хотите более точный контроль над вещами, происходящими за сценой, вы можете использовать PersistentConnection.
Отметьте здесь: https://github.com/SignalR/SignalR/wiki/PersistentConnection
Ответ 2
Как правильно указал Incognito, SignalR создает новый экземпляр концентратора для каждого запроса. Вы должны использовать статические члены для хранения необходимой информации в концентраторе для всех запросов. Если вы хотите выполнять некоторые операции каждый раз, когда новый клиент подключается к концентратору, вы должны поместить этот код в OnConnected.