public async Task OnConnectedAsync(ConnectionContext connection) { // We check to see if HubOptions<THub> are set because those take precedence over global hub options. // Then set the keepAlive and negotiateTimeout values to the defaults in HubOptionsSetup incase they were explicitly set to null. var keepAlive = _hubOptions.KeepAliveInterval ?? _globalHubOptions.KeepAliveInterval ?? HubOptionsSetup.DefaultKeepAliveInterval; var negotiateTimeout = _hubOptions.NegotiateTimeout ?? _globalHubOptions.NegotiateTimeout ?? HubOptionsSetup.DefaultNegotiateTimeout; var supportedProtocols = _hubOptions.SupportedProtocols ?? _globalHubOptions.SupportedProtocols; if (supportedProtocols != null && supportedProtocols.Count == 0) { throw new InvalidOperationException("There are no supported protocols"); } var connectionContext = new HubConnectionContext(connection, keepAlive, _loggerFactory); if (!await connectionContext.NegotiateAsync(negotiateTimeout, supportedProtocols, _protocolResolver, _userIdProvider)) { return; } try { await _lifetimeManager.OnConnectedAsync(connectionContext); await RunHubAsync(connectionContext); } finally { await _lifetimeManager.OnDisconnectedAsync(connectionContext); } }
public async Task OnConnectedAsync(ConnectionContext connection) { var connectionContext = new HubConnectionContext(connection, _hubOptions.KeepAliveInterval, _loggerFactory); if (!await connectionContext.NegotiateAsync(_hubOptions.NegotiateTimeout, _protocolResolver, _userIdProvider)) { return; } try { await _lifetimeManager.OnConnectedAsync(connectionContext); await RunHubAsync(connectionContext); } finally { await _lifetimeManager.OnDisconnectedAsync(connectionContext); } }
public async Task OnConnectedAsync(ConnectionContext connection) { var connectionContext = new HubConnectionContext(connection, _hubOptions.KeepAliveInterval, _loggerFactory); if (!await connectionContext.NegotiateAsync(_hubOptions.NegotiateTimeout, _protocolResolver, _userIdProvider)) { return; } // We don't need to hold this task, it's also held internally and awaited by DisposeAsync. _ = connectionContext.StartAsync(); try { await _lifetimeManager.OnConnectedAsync(connectionContext); await RunHubAsync(connectionContext); } finally { await _lifetimeManager.OnDisconnectedAsync(connectionContext); await connectionContext.DisposeAsync(); } }