public StreamingController( IHostApplicationLifetime hostApplicationLifetime, SpdyRequestSubscription subscriptions) { _hostApplicationLifetime = hostApplicationLifetime; _subscriptions = subscriptions; }
protected override void Given( IServiceContainer container) { var spdyRequestSubscription = new SpdyRequestSubscription(); container.RegisterSingleton( () => spdyRequestSubscription); spdyRequestSubscription.OnConnected( async( session, cancellationToken) => { using var stream = await session .ReceiveStreamAsync( cancellationToken) .ConfigureAwait(false); ReadResult readResult; do { readResult = await stream .ReceiveAsync( cancellationToken: cancellationToken) .ConfigureAwait(false); _serverReceivedRequest += Encoding.UTF8.GetString( readResult.Buffer.ToArray()); } while (!readResult.IsCanceled && !readResult.IsCompleted); await stream.SendLastAsync( new ReadOnlyMemory <byte>( Encoding.UTF8.GetBytes( "This is a response")), cancellationToken: cancellationToken) .ConfigureAwait(false); await stream.WaitForFullyClosedAsync(cancellationToken) .ConfigureAwait(false); }); }