aspnet core 2.1中AddSignalR和AddSignalRCore扩展方法的区别

Differences between AddSignalR and AddSignalRCore extension methods in aspnet core 2.1

我正在尝试在我的 aspnet core 2.1 中配置 SignalR project.In Startup.cs class,在 ConfigureServices() 方法中有 2 个选项可供使用。

services.AddSignalR()
services.AddSignalRCore()

这两种方法有什么区别?

我可以轻松地通过 services.AddSignalR() 使用 signalR,但是当我将其更改为 services.AddSignalRCore() 时,它会引发错误。

AddSignalR()AddSignalRCore() 调用了两个额外的服务,如下所示:

这里是AddSignalR()方法的代码:

public static ISignalRBuilder AddSignalR(this IServiceCollection services, Action<HubOptions> configure)
{
    services.Configure(configure);
    services.AddSockets();
    return services.AddSignalRCore();
}

这里是AddSignalRCore()方法的代码:

public static ISignalRBuilder AddSignalRCore(this IServiceCollection services)
{
    services.AddSingleton(typeof(HubLifetimeManager<>), typeof(DefaultHubLifetimeManager<>));
    services.AddSingleton(typeof(IHubProtocolResolver), typeof(DefaultHubProtocolResolver));
    services.AddSingleton(typeof(IHubContext<>), typeof(HubContext<>));
    services.AddSingleton(typeof(HubEndPoint<>), typeof(HubEndPoint<>));
    services.AddScoped(typeof(IHubActivator<>), typeof(DefaultHubActivator<>));
    
    services.AddAuthorization();
    
    return new SignalRBuilder(services);
}