使用SignalR集线器的服务的建议生命周期

马可·梅耶(Marco Mayer)

我正在使用SignalR ContentHub在ASP.NET Core Web应用程序(在.NET Core 2.2中运行)的各种控制器中注入以下服务。当前,该服务注入了短暂的生命周期。使用单例生命周期会更好吗?在这种情况下,过渡生命周期是否可能导致性能问题?

public class PushMessageService : IPushMessageService
{
    private readonly ILogger<PushMessageService> _logger;
    private readonly IHubContext<ContentHub> _context;

    public PushMessageService(
        ILogger<PushMessageService> logger,
        IHubContext<ContentHub> context
    )
    {
        _logger = logger;
        _context = context;
    }    

    public async Task Push(int productId)
    {
        var msg = new Message
        {
            ProductId = productId
        };

        await SendAsync("PushMsg", productId, msg);
    }

    private async Task SendAsync<TPayload>(string methodName, int productId, TPayload payload)
    {
        await _context.Clients.Group("prod" + productId).SendAsync(methodName, payload);
    }
}
克里斯·普拉特

IHubContext包装中心抽象是单例。因此,将类用作依赖项的生存期并不重要。无论您使用单例生存期,作用域生存期还是瞬态生存期,始终会获得相同的实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SSRS Web代理的建议生命周期

来自分类Dev

android服务和活动生命周期?

来自分类Dev

活动和服务的生命周期

来自分类Dev

Android服务生命周期

来自分类Dev

通过服务改变活动的生命周期?

来自分类Dev

了解活动和服务的生命周期

来自分类Dev

使用React Hooks的生命周期问题

来自分类Dev

使用Redux时反应生命周期

来自分类Dev

使用 Pandas 计算客户生命周期

来自分类Dev

使用哪种反应生命周期方法

来自分类Dev

使用 Redux 响应生命周期( componentDidMount )

来自分类Dev

Autofac(+ MVC + EF + SignalR + Hangfire)生命周期范围

来自分类Dev

MarshalByRefObject生命周期

来自分类Dev

组件生命周期

来自分类Dev

ComponentDidMount()生命周期

来自分类Dev

RequestLocationUpdates生命周期

来自分类Dev

ViewPager的生命周期

来自分类Dev

对象的生命周期

来自分类Dev

订阅的生命周期

来自分类Dev

在ASP.NET Core中使用Autofac注册应用程序生命周期范围的服务

来自分类Dev

使用服务在应用程序生命周期之外继续计时器

来自分类Dev

在ASP.NET Core中使用Autofac注册应用程序生命周期范围的服务

来自分类Dev

在使用生命周期参数的函数调用中如何处理结构参数的生命周期?

来自分类Dev

使服务生命周期独立于活动

来自分类Dev

Android Fragment:用于Web服务调用的生命周期方法

来自分类Dev

如何从服务中正确管理线程的生命周期?

来自分类Dev

服务和Android应用程序生命周期

来自分类Dev

Aurelia组件生命周期中的远程服务

来自分类Dev

在生命周期事件中调用服务