Я внедряю следующий сервис с SignalR ContentHub в различные контроллеры в веб-приложении ASP. NET Core (работает на. 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);
}
}