Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向多个组的成员发送单一信号器消息_C#_Signalr - Fatal编程技术网

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).广播(名称、消息);