SignalR从控制器加入组

当用户登录我的网站时,他们从下拉列表中选择他们所属的组。 在登录回发时,当他们登录时,我想将它们分配给正确的SignalR组。

根据此处的文档,我可以通过以下方式加入客户端:

contosoChatHubProxy.server.joinGroup(groupName); 

有没有办法从控制器分配组? 我可以称之为Hub:

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

但hub方法中的Context为null。 这是可能的,还是我错误地接近了这个问题? 谢谢你的任何建议。

你不应该新建这样的中心; 您可以从外部代码获取集线器上下文并将用户添加到组中,如下所示:

 var hubContext = GlobalHost.ConnectionManager.GetHubContext(); hubContext.Groups.Add(connectionId, groupName);