public async Task <IAdaptedConnection> OnConnectionAsync(ConnectionAdapterContext context) { var connection = context.ConnectionStream; var back2Back = new BackToBackStream(connection); var firstByte = new byte[1]; var bytesRead = await connection.ReadAsync(firstByte, 0, 1); back2Back.FirstByte = firstByte[0]; if (firstByte[0] == 0x16) { _isHttp = true; } throw new NotImplementedException(); //await _previous.OnConnectionAsync(context); //var previousRequest = context.PrepareRequest; //context.PrepareRequest = features => //{ // previousRequest?.Invoke(features); //}; }
public async Task OnConnectionAsync(ConnectionFilterContext context) { await _previous.OnConnectionAsync(context); var previousRequest = context.PrepareRequest; var firstByte = new byte[1]; await context.Connection.ReadAsync(firstByte, 0, 1); if (firstByte[0] == 0x16) { context.Address = ServerAddress.FromUrl($"https://{context.Address.Host}:{context.Address.Port}"); } var connection = context.Connection; var back2Back = new BackToBackStream(firstByte[0], connection); context.Connection = back2Back; context.PrepareRequest = features => { previousRequest?.Invoke(features); }; }