C# 向多个组的成员发送单一信号器消息
当运行以下信号机代码时,属于多个合格组的成员将收到多条消息:C# 向多个组的成员发送单一信号器消息,c#,signalr,C#,Signalr,当运行以下信号机代码时,属于多个合格组的成员将收到多条消息: public class ChatHub : Hub { public void Send(string name, string message, params string[] groups) { this.Clients.Groups(groups).broadcast(name, message); } } 是否有任何方法向属于任何组的用户发送单个消息?换句话说,如果上面的groups
public class ChatHub : Hub
{
public void Send(string name, string message, params string[] groups)
{
this.Clients.Groups(groups).broadcast(name, message);
}
}
是否有任何方法向属于任何组的用户发送单个消息?换句话说,如果上面的groups
参数定义为[“grpA”,“grpB”]
,我希望发生以下情况:
- 用户1,grpA成员:1条消息
- 用户2,grpB成员:1条消息
- 用户3、grpA和grpB成员:1条消息
- 用户4、grpA和grpC的成员:1条消息
- 用户5,grpC成员:0条消息
这个API可能会在未来的版本中引入,但目前还没有办法做到这一点。不,到目前为止,signalR中还没有这样的功能。要实现此功能,您可以将连接存储在包含有关的信息的数据库内存中的某个位置 MemberID、GroupID、SignalConnectionID 然后为特定组的成员获取不同的ConnectionID,并使用如下语法向他们发送消息
List<String> connectionIDs = #GET DISTINCT LIST OF CONNECTIONS FROM DB OR IN MEMORY STORAGE#;
Clients.Clients(connectionIDs).broadcast(name, message);
List connectionIDs=#从数据库或内存存储中获取不同的连接列表#;
Clients.Clients(connectionId).广播(名称、消息);