private async Task StartAsyncCore() { var transferModeFeature = _connection.Features.Get <ITransferModeFeature>(); if (transferModeFeature == null) { transferModeFeature = new TransferModeFeature(); _connection.Features.Set(transferModeFeature); } var requestedTransferMode = _protocol.Type == ProtocolType.Binary ? TransferMode.Binary : TransferMode.Text; transferModeFeature.TransferMode = requestedTransferMode; await _connection.StartAsync(); var actualTransferMode = transferModeFeature.TransferMode; _protocolReaderWriter = new HubProtocolReaderWriter(_protocol, GetDataEncoder(requestedTransferMode, actualTransferMode)); _logger.HubProtocol(_protocol.Name); using (var memoryStream = new MemoryStream()) { NegotiationProtocol.WriteMessage(new NegotiationMessage(_protocol.Name), memoryStream); await _connection.SendAsync(memoryStream.ToArray(), _connectionActive.Token); } }
private ITransferModeFeature GetOrAddTransferModeFeature() { var transferModeFeature = _connection.Features.Get <ITransferModeFeature>(); if (transferModeFeature == null) { transferModeFeature = new TransferModeFeature(); _connection.Features.Set(transferModeFeature); } transferModeFeature.TransferMode = _protocol.Type == ProtocolType.Binary ? TransferMode.Binary : TransferMode.Text; return(transferModeFeature); }
public Task StartAsync() { if (_transferMode.HasValue) { var transferModeFeature = Features.Get <ITransferModeFeature>(); if (transferModeFeature == null) { transferModeFeature = new TransferModeFeature(); Features.Set(transferModeFeature); } transferModeFeature.TransferMode = _transferMode.Value; } _started.TrySetResult(null); return(Task.CompletedTask); }
private async Task StartAsyncCore() { var transferModeFeature = _connection.Features.Get <ITransferModeFeature>(); if (transferModeFeature == null) { transferModeFeature = new TransferModeFeature(); _connection.Features.Set(transferModeFeature); } var requestedTransferMode = _protocol.Type == ProtocolType.Binary ? TransferMode.Binary : TransferMode.Text; transferModeFeature.TransferMode = requestedTransferMode; await _connection.StartAsync(); _needKeepAlive = _connection.Features.Get <IConnectionInherentKeepAliveFeature>() == null; var actualTransferMode = transferModeFeature.TransferMode; _protocolReaderWriter = new HubProtocolReaderWriter(_protocol, GetDataEncoder(requestedTransferMode, actualTransferMode)); Log.HubProtocol(_logger, _protocol.Name); _connectionActive = new CancellationTokenSource(); using (var memoryStream = new MemoryStream()) { Log.SendingHubNegotiate(_logger); NegotiationProtocol.WriteMessage(new NegotiationMessage(_protocol.Name), memoryStream); await _connection.SendAsync(memoryStream.ToArray(), _connectionActive.Token); } ResetTimeoutTimer(); }