c# - SignalR 1.0rc2 版本中未找到 Signalr IConnectionIdGenerator

标签 c# signalr

我曾经使用以下代码实现我自己的连接 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();

希望这有帮助, 伊夫

关于c# - SignalR 1.0rc2 版本中未找到 Signalr IConnectionIdGenerator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14725051/

相关文章:

c# - 调用 C++ dll 时出现 System.AccessViolationException

javascript - 页面加载后加载图像

c# - 简单注入(inject)器 (3.1.5) 和 SignalR (2.2) : SimpleInjector. ActivationException

c# - .Net Core SignalR 不能在启动时添加或使用

c# - 返回用内存流初始化的 SqlXml

c# - 在扩展方法中使用 .net core 依赖项

c# - 在 winrt 中遵循 SOLID 原则的同时捕获异常

javascript - SignalR - 处理来自 JavaScript 客户端的多个集线器连接

asp.net-mvc-4 - SignalR 在浏览器刷新时维护连接 ID

c# - 泛型类型的泛型类型约束