将SignalR用户映射到组中的连接

时间:2014-08-18 07:17:49

标签: c# asp.net .net signalr asp.net-identity

如何使用userId

在组中添加/删除用户
Groups.Add(userid,"groupName")

我在数据库中使用而不是使用connectionId

Groups.Add(connectionId,"groupName")

我创建了一个像here这样的映射!使用User ID Provider方法,我能够做到这一点

Clients.Users(userId).sendMessage("asa")

Groups.Add(userid,"groupName")

它不起作用。 那么如何才能使 Groups.Add(userid,“groupName”)工作?是否有一个我不知道的特殊映射,或者我正在使用这个错误?

1 个答案:

答案 0 :(得分:2)

无法将userId添加到群组。您应该只使用connectionId。 根据您的需要,您可以使用the link you provided中描述的方法。

例如,您可以将每个连接添加到由userId命名的组:

Groups.Add(Context.ConnectionId, userId);

然后您可以向指定用户发送消息:

Clients.Group(userId).sendMessage("asa");

另一个用例可能包括在userId方法中确定OnConnected,然后通过其connectionId将用户添加到所需的群组:

var groupName = GetGroupNameByUserId(userId);
Groups.Add(Context.ConnectionId, groupName);
...
Clients.Group(groupName).sendMessage("asa");