在我以前的SignalR(核心之前(项目中,我曾经有一个static ConcurrentDictionary<string, MyConnectionClass> Connections = new ...;
来表示我的个人连接,并在连接生命周期内获取额外的数据。
如何在SignalR for.NET Core中解决此问题?
我正在看这本手册:https://medium.com/@andrejabrickis/回顾-创建实时通信演示-应用程序-信号-核心-d8ac0afba081
它使用以下内容:
private readonly ConcurrentDictionary<HubConnectionContext, UserDetails> _usersOnline;
现在,我想知道是否应该使用HubConnectionContext作为密钥。使用安全吗?只要连接可行,该实例是否总是与连接id关联?我没有使用任何类型的负载平衡。
现在,我想知道是否应该使用HubConnectionContext作为键。使用安全吗?只要连接可行,该实例是否总是与连接id关联?
否。这篇文章描述的实现实际上使用了:
-
ConcurrentDictionary<string, UserDetailsDto>
-
_userTracker.AddUser(connection.ConnectionId, new UserDetailsDto (...))
connection.ConnectionId
使用安全,足以将数据与连接关联起来。