2013-10-13 29 views
1

行,所以我现在有这样的代码让所有组名称signalr

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

从这个客户端返回一个具有IHubConnectionContext有一个IGroupManager组的IHubConext。无论如何,现在是否有从这个获得所有组名称?这甚至可以用signalR接口,或者我必须自己跟踪每个集线器的所有组?

回答

7

SignalR没有公开的API用于整体管理组,迭代组,甚至获取组的摘要列表。您只能添加或删除组。如果你想保存一个组名列表,可能为你的SomeHubClass使用单例模式。在可以轻松访问的单例中保留组名的List<string>,甚至可以使用Dictionary<string, HashSet<string>>来映射连接ID的名称和哈希集,尽管在这种情况下这可能是过度的。

请参阅http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-server#callfromoutsidehub以实现您的集线器的单例。

+0

听起来不错,所以每个集线器类都必须有自己的数据结构来跟踪每个组。我想到了这一点,但我只需要确定。 – dbarnes

+0

我的荣幸!祝你好运! –