【问题标题】:signalr group add信号组添加
【发布时间】:2012-12-13 07:47:09
【问题描述】:

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

Groups.Add("my_username", "mygroup1);

【问题讨论】:

    标签: asp.net-mvc signalr


    【解决方案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 + 工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多