protected virtual void OnChannelCreated(IProxyChannel channel) { if (ChannelCreated != null) { ChannelCreated(this, channel); } }
private void ConnectService() { lock (_proxyChannelLocker) { if (_proxyChannel != null) { ReleaseChannel(); } CreateChannel(); } if (_proxyChannel != null && _proxyChannel.State == CommunicationState.Created) { _proxyChannel.Open(); } else { if (_proxyChannel != null && _proxyChannel.State != CommunicationState.Created) { _proxyChannel = null; } } if (_proxyChannel != null) { _proxyChannel.InnerChannel.Faulted += new EventHandler(OnChannelCommunnicationFaulted); } }
protected void ReleaseChannel() { if (_proxyChannel != null) { lock (_proxyChannelLocker) { try { if (_proxyChannel != null) { try { _proxyChannel.InnerChannel.Faulted -= new EventHandler(OnChannelCommunnicationFaulted); _proxyChannel.Close(); } catch (Exception ex) { ExceptionHandler.Handle(ex); _proxyChannel.Abort(); } (_proxyChannel as IDisposable).Dispose(); } } catch (Exception ex) { ExceptionHandler.Handle(ex); } finally { _proxyChannel = null; } } } }
public LockableProxyChannel(IProxyChannel innerChannel) : base(innerChannel) { InnerChannel = innerChannel; InnerChannel.RequestSent += InnerChannel_RequestSent; InnerChannel.RequestReceived += InnerChannel_RequestReceived; InnerChannel.ResponseReceived += InnerChannel_ResponseReceived; InnerChannel.ResponseSent += InnerChannel_ResponseSent; }
protected override IDataStream responseMapper(IProxyChannel c, IDataStream s) { var channel = c as DefaultProxyChannel; var data = s as HttpData; if (channel != null && data != null && data.Code == 101) { string upgrade; if (data.Headers.TryGetValue("Upgrade", out upgrade) && upgrade.ToLower() == "websocket") { channel.ReplaceInnerChannels(upgradeServer, upgradeClient); } } return(s); }
public static IProxyChannel <TContractType> CreateDuplexProxyChannel <TContractType>(InstanceContext context) where TContractType : class { IProxyChannel <TContractType> factory = CreateProxyDuplexChannel <TContractType>(context, null, null); return(factory); }
public static IProxyChannel <TContractType> CreateProxyChannel <TContractType>(string hostName) where TContractType : class { IProxyChannel <TContractType> factory = CreateProxyChannel <TContractType>(null, hostName); return(factory); }
/// <summary> /// Maps request from client to request sent to server /// </summary> /// <param name="c"></param> /// <param name="s">request from client</param> /// <returns>modified request or null if the request is to be dropped</returns> protected virtual IDataStream requestMapper(IProxyChannel c, IDataStream s) { return(s); }
protected virtual void CreateChannel() { _proxyChannel = ProxyChannelFactory.CreateProxyChannel <TContract>(_contract.HostName); }
private void handleTypedChannelCreated(object sender, IProxyChannel c) { handleChannelCreated(sender, c); }