迭代signalR hub类中的组

时间:2012-08-08 18:18:59

标签: c# asp.net signalr

如何迭代SignalR组(hub类) Groups.Add(Context.ConnectionId, "foo");

我如何遍历群组以查看其中的内容?然后可能基于connectionId返回用户

2 个答案:

答案 0 :(得分:2)

来自SignalR docs

  

组不会保留在服务器上,因此应用程序负责跟踪哪些组中的连接,以便实现组计数等。

所以不,你不能迭代组中的用户,你需要自己跟踪它。

答案 1 :(得分:1)

当客户端conn / dis / re-connect

时,可能会实现一个Dictionary
  public static readonly ConcurrentDictionary<string ,object> _connections = new 
  ConcurrentDictionary<string,object>();

    public Task Connect()
    {
            _connections.TryAdd(Context.ConnectionId, null);
            Groups.Add(Context.ConnectionId, "users");
            //Returns Connection count. 
            return Clients.tally(_connections.Count.ToString());

    }

你可以扩展它以包括名称或组等,但像akoeplinger说的那样你必须在整个应用程序中跟踪这一点。