signalr group add

时间:2012-12-12 22:49:29

标签: asp.net-mvc signalr

我可以添加例如用户名而不是 connection.id 。它有用吗?我问这个是因为在ConnectionId上我无法向用户发送通知,因为ConnectionId总是在变化吗?

Groups.Add(“my_username”,“mygroup1”;

1 个答案:

答案 0 :(得分:1)

不,你不能,你必须使用ConnectionID。但是,您可以执行以下操作。

在您的集线器商店中,映射到连接ID的用户列表:

static ConcurrentDictionary<string, User> _users = new ConcurrentDictionary<string, User>();

然后在启动客户端连接后,您可以调用类似的方法:

myHub.server.createUser("MyUsername");

当然,您将拥有服务器:

public void createUser(string userName) 
{
    // You'd create a User class that had both of the following properties
    var user = new User
    {
        UserName = userName,
        ConnectionID = Context.ConnectionId
    };
    _users.TryAdd(user.ConnectionID, user);        
}

因此,每当您想通过连接ID查找用户时,您仍然可以通过_users字典获得他/她用户名的上下文。

注意:此代码通过signalr 1.0 alpha +

工作