Exemple #1
0
        protected virtual async Task FinishAsync(IClientChannel clientChannel, CancellationToken cancellationToken)
        {
            var receivedFinishedSessionTask = clientChannel.ReceiveFinishedSessionAsync(cancellationToken);
            await clientChannel.SendFinishingSessionAsync(cancellationToken).ConfigureAwait(false);

            await receivedFinishedSessionTask.ConfigureAwait(false);
        }
Exemple #2
0
        public override async Task OnWindowClosingAsync()
        {
            if (_clientChannel != null)
            {
                if (_clientChannel.State == SessionState.Established)
                {
                    await _clientChannel.SendFinishingSessionAsync();

                    var session = await _clientChannel.ReceiveFinishedSessionAsync(_receiveTimeout.ToCancellationToken());
                }

                _clientChannel.DisposeIfDisposable();
            }
        }
Exemple #3
0
 private async Task ListenSessionAsync()
 {
     await _clientChannel.ReceiveFinishedSessionAsync(_cancellationTokenSource.Token);
 }
 /// <summary>
 /// Performs the session finishing handshake.
 /// </summary>
 public static async Task<Session> FinishSessionAsync(this IClientChannel clientChannel, CancellationToken cancellationToken)
 {
     var finishedTask = clientChannel.ReceiveFinishedSessionAsync(cancellationToken);
     await clientChannel.SendFinishingSessionAsync(cancellationToken).ConfigureAwait(false);
     return await finishedTask.ConfigureAwait(false);
 }