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); } }); }
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()); }
public double ServerAverageCPUUsage(int lastMinutes = 3) { connection.SendRequest("ServerInfoController", "AverageCPUUsage", new { lastMinutes }); return(connection.GetResultObject <double>()); }
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); } }
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)); } }