Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Asp.net core SignalR Core中UserIdentifier、ConnectionId和组之间的差异_Asp.net Core_Asp.net Core Signalr - Fatal编程技术网

Asp.net core SignalR Core中UserIdentifier、ConnectionId和组之间的差异

Asp.net core SignalR Core中UserIdentifier、ConnectionId和组之间的差异,asp.net-core,asp.net-core-signalr,Asp.net Core,Asp.net Core Signalr,我想了解ASP.NET核心信号器中用户标识符、连接ID和组背后的原理?同一个UserIdentifer(表示为user)可以有多个信号器连接ID,这不是真的吗?如果是这样的话,为什么要使用组来共同建立俱乐部连接?为什么不在一个用户标识符下建立俱乐部连接 同一个UserIdentifer(表示为user)可以有 多信号器连接ID 是的,signal中的单个用户可以与应用程序建立多个连接。例如,用户可以在其桌面和手机上进行连接。每个设备都有一个单独的信号器连接,但它们都与同一用户关联。 如果是这样

我想了解ASP.NET核心信号器中用户标识符、连接ID和组背后的原理?同一个UserIdentifer(表示为user)可以有多个信号器连接ID,这不是真的吗?如果是这样的话,为什么要使用组来共同建立俱乐部连接?为什么不在一个用户标识符下建立俱乐部连接

同一个UserIdentifer(表示为user)可以有 多信号器连接ID

是的,
signal
中的单个用户可以与应用程序建立多个连接。例如,用户可以在其桌面和手机上进行连接。每个设备都有一个单独的
信号器
连接,但它们都与同一用户关联。

如果是这样的话,为什么要使用组来共同建立俱乐部连接

组是与名称关联的连接的集合。消息可以发送到组中的所有连接,而每个连接可以与不同的用户关联。建议使用组发送到一个或多个连接,因为组由应用程序管理。一个连接可以是多个组的成员


为什么不在一个用户标识符下建立俱乐部连接

您可以通过在hub方法中将用户标识符传递给用户函数来向特定用户发送消息,如下例所示:

public Task SendPrivateMessage(string user, string message)
{
    return Clients.User(user).SendAsync("ReceiveMessage", message);
}
如果向用户发送消息,与该用户相关联的所有连接都会收到该消息。连接的用户标识符可以通过中心中的
Context.UserIdentifier
属性访问。

  • 客户端。客户端()
    在特定连接的客户端上调用方法
  • 客户端。用户()
    在与特定用户关联的所有连接上调用方法
  • Clients.Group()
    对指定组中的所有连接调用方法
在中还有更多的方法




SignalR非常灵活,可根据需要提供多种选择。
您可以在这里找到更多详细信息。

谢谢您的回答。确实有助于理清概念。同时,我自己也在做一些关于这个话题的研究。这有助于我们理解何时使用基于useridentifier的分组以及何时使用组。