public override Task OnDisconnectedAsync(Exception exception) { Console.WriteLine($"--> Connection Closed: {Context.ConnectionId} (roomId: {Context.UserIdentifier})"); TtsHandler.ConnectClients.Remove(Context.ConnectionId); TtsHandler.ClientDisconnected(Context.ConnectionId, Context.UserIdentifier); return(base.OnDisconnectedAsync(exception)); }
protected override async Task RunJobAsync(IServiceProvider serviceProvider, CancellationToken stoppingToken) { TtsDbContext db = serviceProvider.GetService <TtsDbContext>(); TtsHandler ttsHandler = serviceProvider.GetService <TtsHandler>(); if (db is null || ttsHandler is null) { return; } IEnumerable <Task> requestTasks = db.RequestQueueIngest .Include(r => r.Reward) .Include(r => r.Reward.Channel) .Where(rqi => rqi != null && TtsHandler.ConnectClients.Values.Contains(rqi.Reward.ChannelId.ToString()) // rqi.RewardId is already being checked ) .Select(rqi => rqi.Reward.ChannelId) .Distinct() .ToList() .Select(ttsHandler.TrySendNextTtsRequestForChannel); await Task.WhenAll(requestTasks); }
public TtsHub(TtsDbContext ttsDbContext, TtsHandler ttsHandler) { _ttsDbContext = ttsDbContext; _ttsHandler = ttsHandler; }