public static async void Awake(this BenchmarkClientComponent self, BenchmarkClientComponent.ClientSetting clientSetting) { try { self.networkComponent = clientSetting.networkComponent; self.ipEndPoint = clientSetting.ipEndPoint; self.testPlayerSetting = clientSetting.testPlayerSetting; self.stateMachine = new StateMachine <BenchmarkClientComponent>(); self.robotMode = clientSetting.robotMode; self.roadSettingId = clientSetting.roadSettingId; self.IsFromPool = false; //self.InitializeStateMachine(); /****************/ await self.SignIn(self.testPlayerSetting.DeviceUniqueIdentifier); //設定玩家資料 TestPlayerDataComponent playerDataComponent = self.session.AddComponent <TestPlayerDataComponent>(); playerDataComponent.testPlayerSetting = clientSetting.testPlayerSetting; self.Init(); } catch (Exception e) { Console.WriteLine($"Msg:{e.Message}, Stack:{e.StackTrace}"); } }
public static async void Awake(this BenchmarkComponent self, ClientConfig clientConfig) { try { self.timerComponent = Game.Scene.GetComponent <TimerComponent>(); self.networkProfiler = new ProfilerUtility.NetworkProfiler(); if (!File.Exists(clientConfig.UserCollectionPath)) { Console.WriteLine($"Invalid user data path: {clientConfig.UserCollectionPath}"); return; } IPEndPoint ipEndPoint = ETModel.NetworkHelper.ToIPEndPoint(clientConfig.Address); NetOuterComponent networkComponent = Game.Scene.GetComponent <NetOuterComponent>(); string json = await File.ReadAllTextAsync(clientConfig.UserCollectionPath); List <BsonDocument> users = BsonSerializer.Deserialize <List <BsonDocument> >(json); //users = users.Where(e => e["identity"].AsInt32 == (int)User.Identity.TestPlayer).ToList(); users = users.Where(e => e["userId"].AsString.Length == 10).ToList(); int limit = clientConfig.Count * clientConfig.RobotCount; for (int i = clientConfig.CurrentRobot, j = 0; i < limit; i += clientConfig.RobotCount, j++) { //self.TestAsync(networkComponent, ipEndPoint, i); if (i >= users.Count) { Console.WriteLine($"testing player is over count of collection"); break; } BsonDocument user = users[i]; TestPlayerSetting testPlayerSetting = new TestPlayerSetting(); //testPlayerSetting.DeviceUniqueIdentifier = user["email"].AsString; testPlayerSetting.DeviceUniqueIdentifier = user["userId"].AsString; BenchmarkClientComponent.ClientSetting clientSetting = new BenchmarkClientComponent.ClientSetting { networkComponent = networkComponent, ipEndPoint = ipEndPoint, testPlayerSetting = testPlayerSetting, robotMode = (BenchmarkClientComponent.RobotMode)clientConfig.RobotMode, roadSettingId = clientConfig.RoadSettingId, }; var client = ComponentFactory.Create <BenchmarkClientComponent, BenchmarkClientComponent.ClientSetting>(clientSetting); client.index = j; self.clients.Add(testPlayerSetting.DeviceUniqueIdentifier, client); self.clientList.Add(client); } while (!self.IsDisposed) { await self.timerComponent.WaitForSecondAsync(1); if (self.watchTargetList.Count != 0) { foreach (var v in self.clientList.Where(e => self.watchTargetList.Contains(e.index))) { v.PrintMessage(); } } } } catch (Exception e) { Log.Error(e); } }