diff --git a/samples/ClientSample/RawSample.cs b/samples/ClientSample/RawSample.cs index b6a4c56ef6..d21da7c658 100644 --- a/samples/ClientSample/RawSample.cs +++ b/samples/ClientSample/RawSample.cs @@ -41,7 +41,11 @@ namespace ClientSample { var cts = new CancellationTokenSource(); connection.Received += data => Console.Out.WriteLineAsync($"{Encoding.UTF8.GetString(data)}"); - connection.Closed += e => cts.Cancel(); + connection.Closed += e => + { + cts.Cancel(); + return Task.CompletedTask; + }; await connection.StartAsync(); diff --git a/src/Microsoft.AspNetCore.SignalR.Client/HubConnection.cs b/src/Microsoft.AspNetCore.SignalR.Client/HubConnection.cs index 0a71ccacdd..568a508749 100644 --- a/src/Microsoft.AspNetCore.SignalR.Client/HubConnection.cs +++ b/src/Microsoft.AspNetCore.SignalR.Client/HubConnection.cs @@ -33,13 +33,13 @@ namespace Microsoft.AspNetCore.SignalR.Client private int _nextId = 0; - public event Action Connected + public event Func Connected { add { _connection.Connected += value; } remove { _connection.Connected -= value; } } - public event Action Closed + public event Func Closed { add { _connection.Closed += value; } remove { _connection.Closed -= value; } @@ -214,7 +214,7 @@ namespace Microsoft.AspNetCore.SignalR.Client } } - private void Shutdown(Exception ex = null) + private Task Shutdown(Exception ex = null) { _logger.LogTrace("Shutting down connection"); if (ex != null) @@ -240,6 +240,7 @@ namespace Microsoft.AspNetCore.SignalR.Client } _pendingCalls.Clear(); } + return Task.CompletedTask; } private Task DispatchInvocationAsync(InvocationMessage invocation, CancellationToken cancellationToken) diff --git a/src/Microsoft.AspNetCore.Sockets.Abstractions/IConnection.cs b/src/Microsoft.AspNetCore.Sockets.Abstractions/IConnection.cs index 315ecc794c..09c9954198 100644 --- a/src/Microsoft.AspNetCore.Sockets.Abstractions/IConnection.cs +++ b/src/Microsoft.AspNetCore.Sockets.Abstractions/IConnection.cs @@ -13,8 +13,8 @@ namespace Microsoft.AspNetCore.Sockets.Client Task SendAsync(byte[] data, CancellationToken cancellationToken); Task DisposeAsync(); - event Action Connected; + event Func Connected; event Func Received; - event Action Closed; + event Func Closed; } } diff --git a/src/Microsoft.AspNetCore.Sockets.Client.Http/HttpConnection.cs b/src/Microsoft.AspNetCore.Sockets.Client.Http/HttpConnection.cs index 90e45a9926..f0d1d53a36 100644 --- a/src/Microsoft.AspNetCore.Sockets.Client.Http/HttpConnection.cs +++ b/src/Microsoft.AspNetCore.Sockets.Client.Http/HttpConnection.cs @@ -34,9 +34,9 @@ namespace Microsoft.AspNetCore.Sockets.Client public Uri Url { get; } - public event Action Connected; + public event Func Connected; public event Func Received; - public event Action Closed; + public event Func Closed; public HttpConnection(Uri url) : this(url, TransportType.All) diff --git a/test/Microsoft.AspNetCore.SignalR.Client.Tests/ConnectionTests.cs b/test/Microsoft.AspNetCore.SignalR.Client.Tests/ConnectionTests.cs index e0a0313387..14c81ae8ac 100644 --- a/test/Microsoft.AspNetCore.SignalR.Client.Tests/ConnectionTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Client.Tests/ConnectionTests.cs @@ -210,7 +210,11 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests try { var connectedEventRaisedTcs = new TaskCompletionSource(); - connection.Connected += () => connectedEventRaisedTcs.SetResult(null); + connection.Connected += () => + { + connectedEventRaisedTcs.SetResult(null); + return Task.CompletedTask; + }; await connection.StartAsync(); @@ -246,7 +250,11 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests try { - connection.Connected += () => connectedEventRaised = true; + connection.Connected += () => + { + connectedEventRaised = true; + return Task.CompletedTask; + }; await Assert.ThrowsAsync( async () => await connection.StartAsync()); @@ -277,7 +285,11 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests var connection = new HttpConnection(new Uri("http://fakeuri.org/"), TransportType.LongPolling, loggerFactory: null, httpMessageHandler: mockHttpHandler.Object); var closedEventTcs = new TaskCompletionSource(); - connection.Closed += e => closedEventTcs.SetResult(e); + connection.Closed += e => + { + closedEventTcs.SetResult(e); + return Task.CompletedTask; + }; await connection.StartAsync(); await connection.DisposeAsync(); @@ -305,7 +317,11 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests var connection = new HttpConnection(new Uri("http://fakeuri.org/"), TransportType.LongPolling, loggerFactory: null, httpMessageHandler: mockHttpHandler.Object); var closedEventTcs = new TaskCompletionSource(); - connection.Closed += e => closedEventTcs.TrySetResult(e); + connection.Closed += e => + { + closedEventTcs.TrySetResult(e); + return Task.CompletedTask; + }; try { @@ -426,7 +442,11 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests var connection = new HttpConnection(new Uri("http://fakeuri.org/")); bool closedEventRaised = false; - connection.Closed += e => closedEventRaised = true; + connection.Closed += e => + { + closedEventRaised = true; + return Task.CompletedTask; + }; await connection.DisposeAsync(); Assert.False(closedEventRaised); @@ -615,6 +635,7 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests { receiveTcs.TrySetCanceled(); } + return Task.CompletedTask; }; await connection.StartAsync(); @@ -648,7 +669,11 @@ namespace Microsoft.AspNetCore.Sockets.Client.Tests try { var closeTcs = new TaskCompletionSource(); - connection.Closed += e => closeTcs.TrySetResult(e); + connection.Closed += e => + { + closeTcs.TrySetResult(e); + return Task.CompletedTask; + }; await connection.StartAsync(); diff --git a/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionExtensionsTests.cs b/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionExtensionsTests.cs index caed80bc89..4c2f15fc2d 100644 --- a/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionExtensionsTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionExtensionsTests.cs @@ -138,6 +138,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.Tests { closeTcs.TrySetException(e); } + return Task.CompletedTask; }; try @@ -180,6 +181,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.Tests { closeTcs.TrySetException(e); } + return Task.CompletedTask; }; try diff --git a/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionTests.cs b/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionTests.cs index b32f13ea04..e63627244c 100644 --- a/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionTests.cs @@ -60,7 +60,11 @@ namespace Microsoft.AspNetCore.SignalR.Client.Tests try { var connectedEventRaisedTcs = new TaskCompletionSource(); - hubConnection.Connected += () => connectedEventRaisedTcs.SetResult(null); + hubConnection.Connected += () => + { + connectedEventRaisedTcs.SetResult(null); + return Task.CompletedTask; + }; await hubConnection.StartAsync(); @@ -77,7 +81,11 @@ namespace Microsoft.AspNetCore.SignalR.Client.Tests { var hubConnection = new HubConnection(new TestConnection()); var closedEventTcs = new TaskCompletionSource(); - hubConnection.Closed += e => closedEventTcs.SetResult(e); + hubConnection.Closed += e => + { + closedEventTcs.SetResult(e); + return Task.CompletedTask; + }; await hubConnection.StartAsync(); await hubConnection.DisposeAsync(); diff --git a/test/Microsoft.AspNetCore.SignalR.Client.Tests/TestConnection.cs b/test/Microsoft.AspNetCore.SignalR.Client.Tests/TestConnection.cs index 21d555075c..2126f7d4a6 100644 --- a/test/Microsoft.AspNetCore.SignalR.Client.Tests/TestConnection.cs +++ b/test/Microsoft.AspNetCore.SignalR.Client.Tests/TestConnection.cs @@ -25,9 +25,9 @@ namespace Microsoft.AspNetCore.SignalR.Client.Tests private CancellationTokenSource _receiveShutdownToken = new CancellationTokenSource(); private Task _receiveLoop; - public event Action Connected; + public event Func Connected; public event Func Received; - public event Action Closed; + public event Func Closed; public Task Started => _started.Task; public Task Disposed => _disposed.Task; diff --git a/test/Microsoft.AspNetCore.SignalR.Tests/EndToEndTests.cs b/test/Microsoft.AspNetCore.SignalR.Tests/EndToEndTests.cs index 2419908a3b..08ac903e4b 100644 --- a/test/Microsoft.AspNetCore.SignalR.Tests/EndToEndTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Tests/EndToEndTests.cs @@ -111,6 +111,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests receiveTcs.TrySetResult(null); closeTcs.TrySetResult(null); } + return Task.CompletedTask; }; logger.LogInformation("Starting connection to {url}", url); @@ -231,6 +232,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests { closeTcs.TrySetResult(null); } + return Task.CompletedTask; }; logger.LogInformation("Starting connection to {url}", url);