Пример #1
0
 public StreamingController(
     IHostApplicationLifetime hostApplicationLifetime,
     SpdyRequestSubscription subscriptions)
 {
     _hostApplicationLifetime = hostApplicationLifetime;
     _subscriptions           = subscriptions;
 }
Пример #2
0
            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);
                });
            }