SignalR - Почему метод Disconnect другого концентратора вызывается, когда пользователь перезагружает страницу? - PullRequest
0 голосов
/ 23 февраля 2012

Справочная информация:

Мне не удается понять, почему Disconnect вызывается из концентратора, который еще не был инициализирован.

У меня есть два разных вида MVC, которыесоздает различные сигнальные соединения:

  • ListView (JS создает соединение с ListHub, который не реализует IDisconnect)
  • DetailsView (JS создает соединение с DetailsHub, которое выполняет реализацию IDisconnect)

Когда пользователь входит в систему, он / она перенаправляется в ListView, где javascript создает соединение с ListHub, так что страница знает о событиях, которыеблокирует / разблокирует элементы в списке.Когда пользователь щелкает элемент, в ListHub отправляется сигнал, и элемент блокируется пользователем.После этого я прекращаю выполнение GET-запроса с помощью event.preventDefault (), и он работает хорошо.

Проблема в том, что ... Как только пользователь уходит на другую страницу - или, если страница просто перезагружается - запускается метод Disconnect DetailsHub .Я не понимаю, почему это происходит.Помните, что ListHub пока является единственным активным концентратором.Другие концентраторы или соединения не были инициализированы.Тем не менее, это поведение, которое я получаю.

То, что я пытаюсь достичь

То, что я пытаюсь достичь здесь, это сделать что-то, когда Disconnectподнят / вызван на DetailsHub.Я хочу, чтобы ничего не происходило, когда пользователь отключается от ListHub.

1 Ответ

1 голос
/ 03 апреля 2012

Это написано в вики проекта signalR:

Когда клиент отключается, метод Disconnect будет вызываться на всех концентраторах, которые реализуют IDisconnect.Когда этот метод вызывается, вы можете использовать Context.ConnectionId для доступа к клиенту, который отключился.

https://github.com/SignalR/SignalR/wiki/Hubs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...