private async Task RunAsync() { // (ThreadPoolSize == ProcessorCount) gives best throughput in benchmarks // and doesn't seem to harm performance even when server and client // are running on the same machine. GrpcEnvironment.SetThreadPoolSize(Environment.ProcessorCount); string host = "0.0.0.0"; int port = options.DriverPort; var tcs = new TaskCompletionSource <object>(); var workerServiceImpl = new WorkerServiceImpl(() => { Task.Run(() => tcs.SetResult(null)); }); var server = new Server { Services = { WorkerService.BindService(workerServiceImpl) }, Ports = { new ServerPort(host, options.DriverPort, ServerCredentials.Insecure) } }; int boundPort = server.Ports.Single().BoundPort; Console.WriteLine("Running qps worker server on " + string.Format("{0}:{1}", host, boundPort)); server.Start(); await tcs.Task; await server.ShutdownAsync(); }
private void Run() { string host = "0.0.0.0"; int port = options.DriverPort; var server = new Server { Services = { WorkerService.BindService(new WorkerServiceImpl()) }, Ports = { new ServerPort(host, options.DriverPort, ServerCredentials.Insecure) } }; int boundPort = server.Ports.Single().BoundPort; Console.WriteLine("Running qps worker server on " + string.Format("{0}:{1}", host, boundPort)); server.Start(); server.ShutdownTask.Wait(); }
public void Listen(UnitySyncContext syncContext, IGameObjectFactory enemyFactory, Game game) { mServer = new Server(); mServer.Ports.Add(new ServerPort(IPAddress.Any.ToString(), GameUtils.GamePort, ServerCredentials.Insecure)); mServer.Services.Add(GameService.BindService(mGameService = new GameServiceImpl(game, enemyFactory, syncContext))); mGameService.MessageRecived += GameServiceOnMessageRecived; var meeleeWarriorService = new MeeleeWarriorServiceImpl(); MeeleeWarriorRegistrator = meeleeWarriorService; mServer.Services.Add(MeeleeWarriorService.BindService(meeleeWarriorService)); var rangedWarriorService = new RangedWarriorServiceImpl(); RangedWarriorRegistrator = rangedWarriorService; mServer.Services.Add(RangedWarriorService.BindService(rangedWarriorService)); var workerService = new WorkerServiceImpl(); WorkerRegistrator = workerService; mServer.Services.Add(WorkerService.BindService(workerService)); var buildingTemplateService = new BuildingTemplateServiceImpl(); BuildingTemplateRegistrator = buildingTemplateService; mServer.Services.Add(BuildingTemplateService.BindService(buildingTemplateService)); var centralBuildingService = new CentralBuildingServiceImpl(); CentralBuildingRegistrator = centralBuildingService; mServer.Services.Add(CentralBuildingService.BindService(centralBuildingService)); var miningCampService = new MiningCampServiceImpl(); MiningCampRegistrator = miningCampService; mServer.Services.Add(MiningCampService.BindService(miningCampService)); var barrakService = new BarrakServiceImpl(); BarrakRegistrator = barrakService; mServer.Services.Add(BarrakService.BindService(barrakService)); mServer.Start(); }
private async Task RunAsync() { string host = "0.0.0.0"; int port = options.DriverPort; var tcs = new TaskCompletionSource <object>(); var workerServiceImpl = new WorkerServiceImpl(() => { Task.Run(() => tcs.SetResult(null)); }); var server = new Server { Services = { WorkerService.BindService(workerServiceImpl) }, Ports = { new ServerPort(host, options.DriverPort, ServerCredentials.Insecure) } }; int boundPort = server.Ports.Single().BoundPort; Console.WriteLine("Running qps worker server on " + string.Format("{0}:{1}", host, boundPort)); server.Start(); await tcs.Task; await server.ShutdownAsync(); }
private async Task RunAsync() { string host = "0.0.0.0"; int port = options.DriverPort; var tcs = new TaskCompletionSource <object>(); var workerServiceImpl = new WorkerServiceImpl(() => { Task.Run(() => tcs.SetResult(null)); }); var server = new Server { Services = { WorkerService.BindService(workerServiceImpl) }, Ports = { new ServerPort(host, options.DriverPort, ServerCredentials.Insecure) } }; int boundPort = server.Ports.Single().BoundPort; GrpcEnvironment.Logger.Info("Running qps worker server on {0}:{1}", host, boundPort); server.Start(); await tcs.Task; await server.ShutdownAsync(); GrpcEnvironment.Logger.Info("GC collection counts (after shutdown): gen0 {0}, gen1 {1}, gen2 {2}", GC.CollectionCount(0), GC.CollectionCount(1), GC.CollectionCount(2)); }