using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.SignalR.Client; using Microsoft.Extensions.Logging; using Squirrowse.Core.Models; namespace Squirrowse.Client.Service { public class ActionDispatcher : IActionDispatcher { private readonly IConnectionManager connectionManager; private readonly ILogger logger; private readonly HubConnection session; public ActionDispatcher(ILogger logger, IConnectionManager connectionManager) { this.connectionManager = connectionManager; this.logger = logger; session.On("Start", StartStream); session.On("Stop", StopStream); } public Task StopStream() { throw new NotImplementedException(); } public async Task SayHello() { await session.SendAsync("AddToGroup", Groups.debug); } public async Task SendStreamAsync(IAsyncEnumerable asb) { logger.LogInformation($"{nameof(SendStreamAsync)} Start stream"); await session.SendAsync("UploadByteStream", asb); logger.LogInformation($"{nameof(SendStreamAsync)} End stream"); } public Task StartStream() { throw new NotImplementedException(); } } }