public static void ConnectIpc(IServiceRemotingCallback serviceRemotingCallback) { InstanceContext instanceContext = new InstanceContext(serviceRemotingCallback); PipeFactory = new DuplexChannelFactory<IServiceRemoting>(instanceContext, new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/BitCollectors.PlinkService/PlinkService")); RemotingObject = PipeFactory.CreateChannel(); }
public void RegisterCallbackClient() { if (WcfServerHelper.CallbackList == null) { WcfServerHelper.CallbackList = new List <IServiceRemotingCallback>(); } IServiceRemotingCallback callback = OperationContext.Current.GetCallbackChannel <IServiceRemotingCallback>(); if (!WcfServerHelper.CallbackList.Contains(callback)) { WcfServerHelper.CallbackList.Add(callback); } Task.Factory.StartNew(() => { try { callback.TunnelStatusChanged(TunnelHelper.CurrentTunnelStatus); if (TunnelHelper.CurrentTunnelStatus == TunnelStatuses.Started) { Thread.Sleep(70); callback.Ping( ProcessHelper.PlinkRunning, (TunnelPingHelper.TunnelValidatorLastPingSuccessful && TunnelPingHelper.TunnelValidatorRunning), TunnelPingHelper.TunnelValidatorLastSuccessfulPingTime); } } catch { } }); }
public static void ConnectIpc(IServiceRemotingCallback serviceRemotingCallback) { InstanceContext instanceContext = new InstanceContext(serviceRemotingCallback); PipeFactory = new DuplexChannelFactory <IServiceRemoting>(instanceContext, new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/BitCollectors.PlinkService/PlinkService")); RemotingObject = PipeFactory.CreateChannel(); }
public void UnregisterCallbackClient() { IServiceRemotingCallback callback = OperationContext.Current.GetCallbackChannel <IServiceRemotingCallback>(); if (WcfServerHelper.CallbackList != null && WcfServerHelper.CallbackList.Contains(callback)) { WcfServerHelper.CallbackList.Remove(callback); } }