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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 4
0
        public void UnregisterCallbackClient()
        {
            IServiceRemotingCallback callback = OperationContext.Current.GetCallbackChannel <IServiceRemotingCallback>();

            if (WcfServerHelper.CallbackList != null && WcfServerHelper.CallbackList.Contains(callback))
            {
                WcfServerHelper.CallbackList.Remove(callback);
            }
        }