ASP.NET SignalR:如何获取特定呼叫者的组名?

时间:2013-12-08 10:12:01

标签: c# asp.net-mvc signalr

您好我正在尝试在SignalR中创建不同的组,我能够这样做。现在我只想在该组中发送特定组的消息,那么我怎么知道到集线器的呼叫者是哪个组并相应地在该组中发送消息。

这是我的服务器端代码:

public  Task JoinGroup(string groupName)
    {
        return Groups.Add(Context.ConnectionId, groupName);
    }

    public Task LeaveGroup(string groupName)
    {
        return  Groups.Remove(Context.ConnectionId, groupName);
    }

    public void SendToGroup(string groupName,string name, string message)
    {
        Clients.Group(groupName).addChatMessage(name, message);
    }

任何帮助都很受欢迎。

1 个答案:

答案 0 :(得分:3)

为了知道“呼叫者”与哪个群组相关联,您必须自己跟踪该信息。

这可以通过静态ConcurrentDictionary完成,它将连接ID​​映射到您定义的某种User对象。然后,您可以在OnConnected中添加它并在OnDisconnected中从中删除它。因此,无论何时将用户添加到组中,都可以在自己的用户对象中跟踪该信息。

希望这有帮助!