예제 #1
0
 public static void HostMessageRevieveHandler(object sender, MessageReceievedArgs arguments)
 {
     if (arguments.Data != null)
     {
         string      commandJsonString = arguments.Data.ToString();
         BaseCommand baseCommand       = JsonConvert.DeserializeObject <BaseCommand>(commandJsonString);
         if (baseCommand != null)
         {
             if (baseCommand.Command == ZC_Command.CONFIRM_CONNECT_HOST)
             {
                 ConfirmConnectedHost response = JsonConvert.DeserializeObject <ConfirmConnectedHost>(commandJsonString);
                 if (response != null)
                 {
                     if ((!response.IsSuccess ? false : clientPipe == null))
                     {
                         clientPipe = new ClientPipe(".", "Test", (BasicPipe p) => p.StartStringReaderAsync());
                         clientPipe.DataReceived += new EventHandler <PipeEventArgs>(AppMessageRecieveHandler);
                         clientPipe.Connect();
                     }
                 }
             }
             if (clientPipe != null)
             {
                 clientPipe.WriteString(commandJsonString);
             }
         }
     }
 }
예제 #2
0
        public void DataRecievedHandler(ServerPipe serverPipe, PipeEventArgs arguments)
        {
            var         commandJsonString = arguments.String;
            BaseCommand baseCommand       = JsonConvert.DeserializeObject <BaseCommand>(commandJsonString);

            if (baseCommand == null)
            {
                return;
            }
            switch (baseCommand.Command)
            {
            case ZC_Command.CONFIRM_CONNECT_HOST:
            {
                ConfirmConnectedHost response = JsonConvert.DeserializeObject <ConfirmConnectedHost>(commandJsonString);
                if (response != null && response.IsSuccess)
                {
                    Profile selectedObject = profile;

                    List <string> ByPassListPattern = selectedObject.ByPassProxySites.Select(p =>
                        {
                            return($"*{p}*");
                        }).ToList();


                    SetProfileRequest request = new SetProfileRequest()
                    {
                        Command = ZC_Command.SET_PROFILE_REQUEST,
                        Profile = new BrowserProfile()
                        {
                            Id                  = selectedObject.Id,
                            Email               = selectedObject.Email,
                            CPU                 = selectedObject.CPU,
                            Battery             = selectedObject.Battery,
                            EnableAudioApi      = selectedObject.EnableAudioApi,
                            EnablePlugins       = selectedObject.EnablePlugins,
                            EnableMediaPlugins  = selectedObject.EnableMediaPlugins,
                            Fonts               = selectedObject.Fonts,
                            RandomTimersEnabled = selectedObject.RandomTimersEnabled,
                            UserAgent           = selectedObject.UserAgent,
                            Screen              = selectedObject.Screen,
                            HistoryLength       = selectedObject.HistoryLength,
                            WebGL               = selectedObject.WebGL,
                            FakeClientRects     = true,
                            Canvas              = selectedObject.Canvas,
                            EnableNetwork       = selectedObject.EnableNetwork,
                            Language            = selectedObject.Language,
                            GeoIpEnabled        = selectedObject.GeoIpEnabled,
                            ProxyEnabled        = selectedObject.ProxyEnabled,
                            Proxies             = selectedObject.Proxies.Where(p => p.Enabled).ToList(),
                            ByPassProxySites    = ByPassListPattern,
                        }
                    };

                    serverPipe.WriteString(JsonConvert.SerializeObject(request));
                }
                break;
            }

            case ZC_Command.NOTIFICATION:
            {
                Notification response = JsonConvert.DeserializeObject <Notification>(commandJsonString);
                if (response != null && response.IsSuccess)
                {
                    Notification request = new Notification()
                    {
                        Type      = NotificationType.INFOR,
                        IsSuccess = true,
                        Message   = "Hello from zchanger application"
                    };

                    serverPipe.WriteString(JsonConvert.SerializeObject(request));
                }
                break;
            }

            case ZC_Command.DISCONNECT:
            {
                DissposeHostConnection(serverPipe.Id);
                break;
            }
            }
        }