SignalR从控制器加入组

时间:2014-01-15 16:29:32

标签: c# asp.net-mvc signalr signalr-hub

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

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

contosoChatHubProxy.server.joinGroup(groupName);

有没有办法从控制器分配组?我可以像Hub一样打电话给中心:

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

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

1 个答案:

答案 0 :(得分:7)

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

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