Esempio n. 1
0
        public void Attack()
        {
            Task.Run(() =>
            {
                Thread.Sleep(300);
                using (ISocketClientConnection connection = SocketConnectionFactory.GetConnection())
                {
                    for (int i = 0; i < TotalFired; i++)
                    {
                        try
                        {
                            connection.SendRequest("CustomerController", "AddCustomer", new
                            {
                                customer = $"Customer n {i + 1} of attacker #{AttackerId}"
                            });

                            if (connection.GetResult().Status == 600)
                            {
                                RequestsSuccess += 1;
                            }
                            else
                            {
                                RequestFails += 1;
                            }
                        }
                        catch
                        {
                            RequestFails += 1;
                        }
                    }

                    manager.EndBatch(TotalFired, RequestsSuccess, RequestFails);
                }
            });
        }
Esempio n. 2
0
        static void Main()
        {
            SocketConnectionFactory.SetDefaultSettings(new SocketClientSettings
                                                       (
                                                           "localhost",
                                                           2500,
                                                           Encoding.UTF8
                                                       ));

            using (ISocketClientConnection connection = SocketConnectionFactory.GetConnection())
            {
                connection.SendRequest("controller", "action", new
                {
                    nome  = "XPTO",
                    idade = 39,
                    outroParametroQualquer = Guid.NewGuid()
                });

                var response = connection.ReadResponse();
            }



            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
Esempio n. 3
0
        public double ServerAverageCPUUsage(int lastMinutes = 3)
        {
            connection.SendRequest("ServerInfoController", "AverageCPUUsage", new
            {
                lastMinutes
            });

            return(connection.GetResultObject <double>());
        }
Esempio n. 4
0
        private int GetCurrentThreadCountOnServer(SubServer server)
        {
            using (ISocketClientConnection client = BuildClient(server))
            {
                Logger.WriteLog($"Querying availability on '{server.Address}:{server.Port}'", ServerLogType.INFO);

                client.SendRequest("ServerInfoController", "GetCurrentThreadsCount");

                int result = int.Parse(client.GetResult().Entity.ToString());
                return(result);
            }
        }
        private OperationResult ExecuteRequest(string controllerName, string actionName,
                                               [FromBody] RequestParameter[] parameters)
        {
            var rb = RequestBody.Create(controllerName, actionName);

            if (parameters != null)
            {
                parameters.ToList().ForEach(p => rb.AddParameter(p.Name, p.Value));
            }

            using (ISocketClientConnection client = GetClient())
            {
                client.SendRequest(rb);
                var result = client.GetResult();
                return(result);
            }
        }
Esempio n. 6
0
        public ActionResult RunAction(string receivedData)
        {
            SocketAppServerClient.RequestBody rb = JsonConvert.DeserializeObject <SocketAppServerClient.RequestBody>(receivedData,
                                                                                                                     AppServerConfigurator.SerializerSettings);

            if (rb.Controller.Equals("ServerInfoController") &&
                rb.Action.Equals("FullServerInfo"))
            {
                return(new ServerInfoController().FullServerInfo());
            }

            string    cacheResultKey = BuildCacheResultKey(rb);
            SubServer targetServer   = GetAvailableSubServer();

            if (targetServer == null)
            {
                CheckAllocateNewInstance();

                if (retried)
                {
                    return(ResolveResultOnUreachableServer(cacheResultKey));
                }
                else
                {
                    retried = true;
                    return(RunAction(receivedData));
                }
            }

            using (ISocketClientConnection client = BuildClient(targetServer))
            {
                client.SendRequest(rb);

                SocketAppServerClient.OperationResult result = client.GetResult();

                if (EnabledCachedResultsForUnreachableServers)
                {
                    CacheRepository <SocketAppServerClient.OperationResult> .Set(cacheResultKey, result, 380);
                }

                targetServer.RefreshLifetimeIfHas();
                return(ActionResult.Json(result));
            }
        }