0

如何遍历 SignalR 组(集线器类) Groups.Add(Context.ConnectionId, "foo");

我将如何遍历该组以查看其中的谁?然后可能基于那里的connectionId返回一个用户

4

2 回答 2

3

来自SignalR 文档

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

所以不,您不能遍历组中的用户,您需要自己跟踪。

于 2012-08-08T18:55:07.083 回答
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 所说,您必须在整个应用程序中跟踪这一点。

于 2012-08-14T10:48:25.243 回答