/// <summary> /// Initializes HttpClient for use with proxy /// </summary> /// <param name="settings"></param> /// <param name="logger"></param> /// <param name="serverChannel"></param> public HttpClient(HttpClientSettings settings, InstanceLogger logger, IServerChannel serverChannel) { this.setttings = settings; client = new TcpClient(settings.TcpSettings); client.ChannelCreated += channelCreatedHandler; client.ErrorOccured += client_ErrorOccured; this.logger = logger; this.serverChannel = serverChannel as HttpServerChannel; }
private void channelCreatedHandler(object sender, IServerChannel e) { var channel = new HttpServerChannel(e, logger); var ev = ChannelCreated; if (ev != null) { ev(this, channel); } }
public HttpClientChannel(IClientChannel channel, InstanceLogger logger, HttpServerChannel serverChannel = null) { var sharedLockChannel = serverChannel != null?serverChannel.GetInnerChannel() : null; if (channel.GetType() != typeof(LockableClientChannel)) { channel = new LockableClientChannel(channel, sharedLockChannel); } this.channel = (LockableClientChannel)channel; this.id = channel.ID; this.name = channel.Name; handlers = new IChannelExtensions.ChannelHandlers { ChannelClosed = channelClosedHandler, ChannelReady = channelReadyHandler, ResponseReceived = responseReceivedHandler, RequestSent = requestSentHandler, ErrorOccured = errorOccuredHandler, }; channel.BindAllEvents(handlers); parser = new HttpMessageParser(logger, true); this.logger = logger; }