Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrennan Conroy <brecon@microsoft.com>2022-08-05 03:49:19 +0300
committerBrennan Conroy <brecon@microsoft.com>2022-08-05 03:49:19 +0300
commit56b5b1daee634f5d63f481b1abcb572b4b014fa2 (patch)
tree786ca20f685148f4116b4c66cb2525e52e1c3d69
parenta0eb3cd9cf6fd4be77392652a304502e71e06dad (diff)
-rw-r--r--src/SignalR/server/Core/src/Internal/DefaultHubDispatcher.cs3
-rw-r--r--src/SignalR/server/Core/src/Internal/HubCallerClients.cs4
-rw-r--r--src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs6
3 files changed, 5 insertions, 8 deletions
diff --git a/src/SignalR/server/Core/src/Internal/DefaultHubDispatcher.cs b/src/SignalR/server/Core/src/Internal/DefaultHubDispatcher.cs
index 24d640645a..6308a15124 100644
--- a/src/SignalR/server/Core/src/Internal/DefaultHubDispatcher.cs
+++ b/src/SignalR/server/Core/src/Internal/DefaultHubDispatcher.cs
@@ -110,9 +110,6 @@ internal sealed partial class DefaultHubDispatcher<THub> : HubDispatcher<THub> w
{
InitializeHub(hub, connection);
- // OnDisonnectedAsync is being called, we don't want to allow client results to be used (ISingleClientProxy.InvokeAsync)
- connection.HubCallerClients.InvokeAllowed = false;
-
if (_onDisconnectedMiddleware != null)
{
var context = new HubLifetimeContext(connection.HubCallerContext, scope.ServiceProvider, hub);
diff --git a/src/SignalR/server/Core/src/Internal/HubCallerClients.cs b/src/SignalR/server/Core/src/Internal/HubCallerClients.cs
index 1d3ed7db29..e2a65ca7d1 100644
--- a/src/SignalR/server/Core/src/Internal/HubCallerClients.cs
+++ b/src/SignalR/server/Core/src/Internal/HubCallerClients.cs
@@ -10,7 +10,7 @@ internal sealed class HubCallerClients : IHubCallerClients
private readonly string[] _currentConnectionId;
private readonly bool _parallelEnabled;
- // Client results don't work in OnConnectedAsync and OnDisconnectedAsync
+ // Client results don't work in OnConnectedAsync
// This property is set by the hub dispatcher when those methods are being called
// so we can prevent users from making blocking client calls by returning a custom ISingleClientProxy instance
internal bool InvokeAllowed { get; set; }
@@ -129,7 +129,7 @@ internal sealed class HubCallerClients : IHubCallerClients
public Task<T> InvokeCoreAsync<T>(string method, object?[] args, CancellationToken cancellationToken = default)
{
- throw new InvalidOperationException("Client results inside OnConnectedAsync or OnDisconnectedAsync Hub methods are not allowed.");
+ throw new InvalidOperationException("Client results inside OnConnectedAsync Hub methods are not allowed.");
}
public Task SendCoreAsync(string method, object?[] args, CancellationToken cancellationToken = default)
diff --git a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs
index 42c523e1eb..91133c9604 100644
--- a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs
+++ b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs
@@ -125,7 +125,7 @@ public partial class HubConnectionHandlerTests
// Hub asks client for a result, this is an invocation message with an ID
var closeMessage = Assert.IsType<CloseMessage>(await client.ReadAsync().DefaultTimeout());
- Assert.Equal("Connection closed with an error. InvalidOperationException: Client results inside OnConnectedAsync or OnDisconnectedAsync Hub methods are not allowed.", closeMessage.Error);
+ Assert.Equal("Connection closed with an error. InvalidOperationException: Client results inside OnConnectedAsync Hub methods are not allowed.", closeMessage.Error);
}
}
@@ -156,8 +156,8 @@ public partial class HubConnectionHandlerTests
var closeMessage = Assert.IsType<CloseMessage>(await client.ReadAsync().DefaultTimeout());
Assert.Null(closeMessage.Error);
- var ex = await Assert.ThrowsAsync<InvalidOperationException>(() => connectionHandlerTask).DefaultTimeout();
- Assert.Equal("Client results inside OnConnectedAsync or OnDisconnectedAsync Hub methods are not allowed.", ex.Message);
+ var ex = await Assert.ThrowsAsync<IOException>(() => connectionHandlerTask).DefaultTimeout();
+ Assert.Equal($"Connection '{client.Connection.ConnectionId}' disconnected.", ex.Message);
}
}