2014-01-15 32 views
1

当用户登录我的网站时,他们从下拉列表中选择属于哪个群组。在登录回发中,当他们登录时,我想将它们分配给正确的SignalR组。SignalR从控制器加入群组

按照文档here,我可以加入客户端通过:

contosoChatHubProxy.server.joinGroup(groupName); 

有没有到组从控制器分配的方法吗?我可以调用Hub:

var hub = new NotificationHub() 
hub.JoinGroup(selectedGroup); 

但hub方法中的上下文为null。这是可能的,还是我不正确地接近这个问题?谢谢你的任何建议。

回答

7

你不应该新建一个这样的中心;你可以得到集线器上下文,并从这样的外部代码添加用户到一个组:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>(); 
hubContext.Groups.Add(connectionId, groupName); 
+0

这很有道理,但你如何获得'ConnectionID'服务器端? – Jonesopolis

+3

您必须将其从客户端传递给控制器​​。在JavaScript的$ .connection.hub.id – davidfowl

+0

啊好吧,这就是我需要知道的。 Thankyou多 – Jonesopolis