Подсчет и список подключений в SignalR

1

Согласно qaru.site/questions/169956/..., нет способа перечислить или проверить количество подключенных клиентов. Тем не менее, ответ немного устарел, и мне интересно, действительно ли он действителен.

Является ли это единственным вариантом для сервера для регистрации всех подключений и отключений? Есть ли хоть какая-то функциональность, которая помогает нам обнаруживать отключения?

Теги:
signalr

1 ответ

3
Лучший ответ

Абсолютно есть способ.

Многие люди справляются с этим, создавая одноэлементный класс, который содержит параллельный словарь любого пользовательского объекта пользователя, который вы определяете. Если вы добавите свои пользовательские объекты в этот словарь при подключении и удалите их при отключении, вы сможете запросить свой словарь для подсчета активных пользователей. Пожалуйста, имейте в виду, что это может быть не до второй точности, потому что есть примерно 30 секунд "прерывание" окна, которое все еще может быть активным, даже если клиент больше не потому, что закрыл свой браузер.

Теперь, есть ли в SignalR какие-либо реальные "hardbaked" функции для этого? Не то чтобы я знаю, но я еще не слишком изучал 2.0. Что касается обнаружения разъединений, он довольно надежный, и если соединение не обнаружено, оно удалит соединение, как указано, что позволит вам оставаться на вершине отключений.

Здесь есть отличный учебник, описывающий этот подход:

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-server-broadcast-with-signalr-20

  • 0
    Так более или менее так, как описано в ссылке, которую я показал, верно? Я думаю, этого достаточно. Но я надеялся на что-то более крепкое. Есть ли рекомендуемый специализированный класс для работы с клиентами или лучше написать его самому?
  • 0
    К сожалению, да, все мои собственные исследования никогда не выявили какого-либо встроенного инструмента, который можно было бы использовать непосредственно из библиотеки. Учебное пособие, которое я связал, вероятно, является одним из более стандартных подходов, использующих одноэлементный шаблон для сохранения экземпляра вашего словаря. Я сам использовал его в производстве, и он хорошо держится. ConcurrentDictionary также поддерживает многопоточность

Ещё вопросы

Сообщество Overcoder
Наверх
Меню