在Signalr 1.0rc2版本中找不到Signalr IConnectionIdGenerator
本文关键字:Signalr 找不到 IConnectionIdGenerator 0rc2 版本 | 更新日期: 2023-09-27 17:58:09
我曾经用以下代码实现我自己的连接id生成器:
public class MyConnectionFactory : IConnectionIdGenerator
{
public string GenerateConnectionId(IRequest request)
{
return MyUserManager.Instance.CurrentUserID.ToString();
}
}
SignalR 0.5.3版本运行良好,但在更新到SignalR 1.0rc2版本后,找不到命名空间或类名。此外,我在这里找不到关于这一突破性变化的任何注释https://github.com/SignalR/SignalR/blob/master/ReleaseNotes.md你能帮我解决这个问题吗?
这确实已经消失了,并且没有直接的替换,因为您现在应该手动进行用户/连接映射。
我使用HubPipelineModule解决了这个问题,并为该用户的所有连接设置了一个组。
public class AuthenticationHubPipelineModule : HubPipelineModule
{
protected override bool OnBeforeIncoming(IHubIncomingInvokerContext context)
{
var id = MyUserManager.Instance.CurrentUserID.ToString();
context.Hub.Groups.Add(context.Hub.Context.ConnectionId, id);
return base.OnBeforeIncoming(context);
}
}
当你想联系用户时,你可以把它发送到这样的群组:
var context = GlobalHost.ConnectionManager.GetHubContext<YourHub>();
context.Clients.Group(userId).yourCallbackMethod();
希望这能有所帮助,Yves