public void DefaultScenarioSameThreadTest() { SimulationServer.Start("AntMeTest", SimulationServer.DEFAULTPORT); byte[] file = File.ReadAllBytes(@".\AntMe.Levelpack.dll"); LoaderInfo loader = AntMe.Runtime.ExtensionLoader.SecureAnalyseExtension(file, true, true); loader.Levels[0].Type.AssemblyFile = file; loader.Players[0].Type.AssemblyFile = file; int lastRound = -1; // Client 1 ISimulationClient client1 = SimulationClient.CreateNamedPipe("AntMeTest"); client1.OnLevelChanged += (c, l) => { if (l != null) { Task t = new Task(() => { c.UploadPlayer(loader.Players[0].Type); c.SetPlayerState(0, PlayerColor.Green, 0, true); }); t.Start(); } }; client1.Open("Client 1"); // Client 2 ISimulationClient client2 = SimulationClient.CreateNamedPipe("AntMeTest"); client2.OnPlayerChanged += (c, s) => { var slot = c.Slots[s]; if (slot.ReadyState && slot.PlayerInfo) { Task t = new Task(() => { c.StartSimulation(); }); t.Start(); } }; client2.OnSimulationState += (c, s) => { lastRound = s.Round; }; client2.Open("Client 2"); client2.AquireMaster(); client2.UploadLevel(loader.Levels[0].Type); Thread.Sleep(10000); Assert.IsTrue(lastRound > 0); SimulationServer.Stop(); }
private void StartServer() { SimulationServerImpl simulationServerImpl = new SimulationServerImpl(); simulationServerImpl.agentDict = ListToDict(m_AgentList); simulationServerImpl.screenStreamer = screenStreamer; server = new Server { Services = { SimulationServer.BindService(simulationServerImpl) }, Ports = { new ServerPort("localhost", port, ServerCredentials.Insecure) } }; server.Start(); Debug.Log("Server started"); }
public INetworkServer GetOrCreateServer(string ip, uint port) { var rServerKey = ip + port.ToString(); if (!this.Servers.TryGetValue(rServerKey, out SimulationServer rServer)) { rServer = new SimulationServer() { Network = this, IP = ip, Port = port }; this.Servers.Add(rServerKey, rServer); } return(rServer); }
static void Main(string[] args) { var simul = new SimulationServer(typeof(ExampleGame)); var frontend = new FrontEndServer("FrontEnd", "index.html"); var server = new RouteServer <SimulationServer>(simul); server.AppendRoutes(frontend); var waiter = new ManualResetEvent(false); Console.CancelKeyPress += (o, e) => { e.Cancel = true; waiter.Set(); }; server.StartAsync(); Console.WriteLine("tart started.. press ctrl+c to stop"); waiter.WaitOne(); server.Stop(); }