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

Sau*_*ank 1 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);
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常有用。

N. *_*len 5

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

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

希望这可以帮助!

  • 请问有什么例子吗? (4认同)