为了设置正确的上下文,让我解释一下这个问题。直到 RC1,我们使用 GenerateConnectionIdPrefix() 来将用户 Id 前缀到连接 Id。然后我们可以随时从连接字符串中检索用户 ID。
使用 RC2,我们现在不能继承 IConnectionIdPrefixGenerator 和实现 GenerateConnectionIdPrefix 了。所以我想知道还有哪些其他途径可以使用我们的数据在集线器上设置任何属性,这些属性在连接的整个生命周期中都会持续存在。
通过文档,我意识到设置查询字符串是一种方法,但这意味着我们需要为每次调用设置它。设置往返状态可能是另一种选择,但看起来即使这样对于单个往返而不是整个生命周期都是持久的。
因此,我的最终目标是在 SignalR 连接开始时将其设置为可以在整个连接生命周期中使用的属性。
如果现在没有可用的东西,是否有计划添加支持以在下一个版本中实现类似的功能?
[更新] 如下所示,我尝试在 OnConnected 方法中设置一个状态 Clients.Caller.Userid,然后尝试在后续调用中访问它,我发现它为 null。两个呼叫都来自相同的连接 ID。