Asp.net core SignalR Core中UserIdentifier、ConnectionId和组之间的差异
我想了解ASP.NET核心信号器中用户标识符、连接ID和组背后的原理?同一个UserIdentifer(表示为user)可以有多个信号器连接ID,这不是真的吗?如果是这样的话,为什么要使用组来共同建立俱乐部连接?为什么不在一个用户标识符下建立俱乐部连接 同一个UserIdentifer(表示为user)可以有 多信号器连接ID 是的,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中的单个用户可以与应用程序建立多个连接。例如,用户可以在其桌面和手机上进行连接。每个设备都有一个单独的信号器连接,但它们都与同一用户关联。 如果是这样
signal
中的单个用户可以与应用程序建立多个连接。例如,用户可以在其桌面和手机上进行连接。每个设备都有一个单独的信号器
连接,但它们都与同一用户关联。
如果是这样的话,为什么要使用组来共同建立俱乐部连接 组是与名称关联的连接的集合。消息可以发送到组中的所有连接,而每个连接可以与不同的用户关联。建议使用组发送到一个或多个连接,因为组由应用程序管理。一个连接可以是多个组的成员
为什么不在一个用户标识符下建立俱乐部连接 您可以通过在hub方法中将用户标识符传递给用户函数来向特定用户发送消息,如下例所示:
public Task SendPrivateMessage(string user, string message)
{
return Clients.User(user).SendAsync("ReceiveMessage", message);
}
如果向用户发送消息,与该用户相关联的所有连接都会收到该消息。连接的用户标识符可以通过中心中的Context.UserIdentifier
属性访问。
- 客户端。客户端()
在特定连接的客户端上调用方法 - 客户端。用户()
在与特定用户关联的所有连接上调用方法 - Clients.Group()
对指定组中的所有连接调用方法
SignalR非常灵活,可根据需要提供多种选择。
您可以在这里找到更多详细信息。谢谢您的回答。确实有助于理清概念。同时,我自己也在做一些关于这个话题的研究。这有助于我们理解何时使用基于useridentifier的分组以及何时使用组。