private async Task CleanupAsync()
        {
            try
            {
                await TransportListener.StopAsync(CancellationToken);

                await Task.WhenAll(
                    ServerTransport.CloseAsync(CancellationToken),
                    ClientTransport.CloseAsync(CancellationToken));
            }
            catch {}
        }