From 56b5b1daee634f5d63f481b1abcb572b4b014fa2 Mon Sep 17 00:00:00 2001 From: Brennan Conroy Date: Thu, 4 Aug 2022 17:49:19 -0700 Subject: fb --- src/SignalR/server/Core/src/Internal/DefaultHubDispatcher.cs | 3 --- src/SignalR/server/Core/src/Internal/HubCallerClients.cs | 4 ++-- .../server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs | 6 +++--- 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 : HubDispatcher 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 InvokeCoreAsync(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(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(await client.ReadAsync().DefaultTimeout()); Assert.Null(closeMessage.Error); - var ex = await Assert.ThrowsAsync(() => connectionHandlerTask).DefaultTimeout(); - Assert.Equal("Client results inside OnConnectedAsync or OnDisconnectedAsync Hub methods are not allowed.", ex.Message); + var ex = await Assert.ThrowsAsync(() => connectionHandlerTask).DefaultTimeout(); + Assert.Equal($"Connection '{client.Connection.ConnectionId}' disconnected.", ex.Message); } } -- cgit v1.2.3