2013-10-13 2 views
1

нормально поэтому у меня есть этот кодПолучение всех имен групп в signalr

var c = GlobalHost.ConnectionManager.GetHubContext<SomeHubClass>().Clients; 

теперь от этого Клиентов возвращает IHubConext, который имеет IHubConnectionContext, который имеет группу IGroupManager. теперь все равно, чтобы получить все имена групп от этого? Возможно ли это с помощью интерфейса signalR или мне нужно отслеживать все группы для каждого концентратора?

ответ

7

SignalR не имеет открытого API для управления группами в целом, итерации по группам или даже получения сводного списка групп. Вы можете добавлять или удалять группы. Если вы хотите сохранить список имен групп, возможно, используйте шаблон singleton для вашего SomeHubClass. Перенесите List<string> имена групп в синглете, к которым вы можете легко получить доступ, или даже Dictionary<string, HashSet<string>>, чтобы отображать как имя, так и hashset идентификаторов соединений, хотя это, вероятно, слишком велико в этом случае.

См. http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-server#callfromoutsidehub для реализации одноэлементного узла вашего концентратора.

+0

звучит хорошо, поэтому каждому классу хаба придется иметь собственную структуру данных для отслеживания каждой группы. Я понял это, но я просто должен был быть уверен. – dbarnes

+0

Мое удовольствие! Удачи! –

Смежные вопросы