Esempio n. 1
0
            protected override void Run(Session session, M2C_MapUnitCreateAndDestroy message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    MapUnitBotModule roamingBotModule = client.GetComponent <MapUnitBotModule>();
                    if (!roamingBotModule.isEnableToStartGame)
                    {
                        roamingBotModule._m2cCache.Enqueue(message);
                    }
                    else
                    {
                        for (int i = 0; i < message.DestroyMapUnitIds.Count; i++)
                        {
                            roamingBotModule.SyncM2C_MapUnitDestroy(message.DestroyMapUnitIds[i]);
                        }

                        for (int i = 0; i < message.CreateMapUnitInfos.Count; i++)
                        {
                            roamingBotModule.SyncM2C_MapUnitCreate(message.CreateMapUnitInfos[i]);
                        }
                    }
                    //client.UserLog($"M2C_MapUnitCreateAndDestroyHandler");
                }
            }
Esempio n. 2
0
        public static async Task Send(this BenchmarkComponent self, Session session, int j)
        {
            try
            {
                var send = new C2S_UserLogin();
                send.AccountId = 1;
                Log.Debug("发送");
                await session.Call(send);

                Log.Debug("发送完成");
                //++self.k;

                //if (self.k % 100000 != 0)
                //{
                //	return;
                //}

                //long time2 = TimeHelper.ClientNow();
                //long time = time2 - self.time1;
                //self.time1 = time2;
                //Log.Info($"Benchmark k: {self.k} 每10W次耗时: {time} ms");
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Esempio n. 3
0
        private void DeleteComp(BenchmarkComponent component)
        {
            if (component == null)
            {
                return;
            }

            Context.BenchmarkComponents.Remove(component);
            Context.SaveChanges();
        }
Esempio n. 4
0
            protected override void Run(Session session, M2C_TeamGoBattleProgressReceiver message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    //client.UserLog($"M2C_TeamGoBattleProgressReceiverHandler");
                }
            }
Esempio n. 5
0
        public static void Awake(this BenchmarkComponent self, IPEndPoint ipEndPoint)
        {
            try
            {
                NetOuterComponent networkComponent = Game.Scene.GetComponent <NetOuterComponent>();
                self.Session = networkComponent.Create(ipEndPoint);

                self.TestLoginAsync();
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Esempio n. 6
0
 public static void Awake(this BenchmarkComponent self, IPEndPoint ipEndPoint)
 {
     try
     {
         NetOuterComponent networkComponent = Game.Scene.GetComponent <NetOuterComponent>();
         for (int i = 0; i < 1000; i++)
         {
             self.TestAsync(networkComponent, ipEndPoint, i);
         }
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
 }
Esempio n. 7
0
 public static async void TestLoginAsync(this BenchmarkComponent self)
 {
     try
     {
         await self.Login(self.Session);
     }
     catch (RpcException e)
     {
         Log.Error(e);
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
 }
Esempio n. 8
0
 public static void Awake(this BenchmarkComponent self, string address)
 {
     try
     {
         IPEndPoint        ipEndPoint       = NetworkHelper.ToIPEndPoint(address);
         NetOuterComponent networkComponent = Game.Scene.GetComponent <NetOuterComponent>();
         for (int i = 0; i < 1000; i++)
         {
             self.TestAsync(networkComponent, ipEndPoint, i).Coroutine();
         }
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
 }
Esempio n. 9
0
            protected override void Run(Session session, M2C_TeamGoBattleProgressAllDone message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    PartyBotModule partyBotModule = client.GetComponent <PartyBotModule>();
                    partyBotModule.state = State.Battle;
                    if (partyBotModule.isLeader)
                    {
                        benchmarkComponent.groupToRoomMap.Remove(client.index / 8);
                    }
                    //client.UserLog($"M2C_TeamGoBattleProgressAllDoneHandler");
                }
            }
Esempio n. 10
0
        private static void UpdateFPS(this BenchmarkComponent self)
        {
            self.frameCount   = self.frameCount + 1.0f;
            self.updateTimer += self.timerComponent.deltaTime;
            self.logTimer    -= self.timerComponent.deltaTime;

            if (self.logTimer <= 0.0f)
            {
                var fps = (int)(self.frameCount / self.updateTimer);
                self.frameCount  = 0;
                self.updateTimer = 0;
                string networkInfo = self.networkProfiler.Show(fps);
                self.logTimer = BenchmarkComponent.logFreqAtSec;
                Console.WriteLine(networkInfo);
            }
        }
Esempio n. 11
0
 protected override void Run(Session session, M2C_TeamModifyMember message)
 {
     try
     {
         _Run(session, message);
     }
     catch (Exception e)
     {
         TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
         BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();
         if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
         {
             client.UserLog($"Msg:{e.Message}, Stack:{e.StackTrace}");
         }
     }
 }
Esempio n. 12
0
        private static async void Awake(this BenchmarkComponent component, string address)
        {
            try
            {
                NetOuterComponent networkComponent = Game.Scene.GetComponent <NetOuterComponent>();

                for (int i = 0; i < 100; i++)
                {
                    await Game.Scene.GetComponent <TimerComponent>().WaitAsync(10);

                    component.TestAsync(networkComponent, address, i);
                }
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Esempio n. 13
0
            protected void _Run(Session session, M2C_TeamModifyMember message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    PartyBotModule partyBotModule = client.GetComponent <PartyBotModule>();
                    if (partyBotModule.teams.TryGetValue(partyBotModule.roomId, out var team))
                    {
                        bool isAdd = true;

                        for (int i = 0; i < team.teamMemberDataList.Count; i++)
                        {
                            if (team.teamMemberDataList[i].Uid == message.Uid)
                            {
                                if (message.MemberData == null)
                                {
                                    //刪除
                                    isAdd = false;
                                    team.teamMemberDataList.RemoveAt(i);
                                    team.Info.NowMemberCount--;
                                    //client.UserLog($"RoomId:{partyBotModule.roomId}, NowMemberCount:{team.Info.NowMemberCount}");
                                }
                                else
                                {
                                    //更新
                                    isAdd = false;
                                    team.teamMemberDataList[i] = message.MemberData;
                                }
                                break;
                            }
                        }

                        if (isAdd)
                        {
                            team.teamMemberDataList.Add(message.MemberData);
                            team.Info.NowMemberCount++;
                            //client.UserLog($"RoomId:{partyBotModule.roomId}, NowMemberCount:{team.Info.NowMemberCount}");
                        }
                    }
                    //client.UserLog($"M2C_TeamModifyMemberHandler");
                }
            }
Esempio n. 14
0
        public void Awake()
        {
            parent             = GetParent <BenchmarkClientComponent>();
            timerComponent     = Game.Scene.GetComponent <TimerComponent>();
            session            = parent.session;
            benchmarkComponent = Game.Scene.GetComponent <BenchmarkComponent>();
            mapUnitBotModule   = parent.GetComponent <MapUnitBotModule>();

            state = State.CreateOrEnterRoom;

            //_nowSpeed = random.Next(5, 30);
            _nowSpeed = 1;

            //while (!IsDisposed)
            //{
            //    await timerComponent.WaitForSecondAsync(5);
            //    Console.WriteLine($"Name:{parent.userName}, State:{state}");
            //}
        }
Esempio n. 15
0
 public static async void TestAsync(this BenchmarkComponent self, NetOuterComponent networkComponent, IPEndPoint ipEndPoint, int j)
 {
     try
     {
         using (Session session = networkComponent.Create(ipEndPoint))
         {
             int i = 0;
             while (i < 100000000)
             {
                 ++i;
                 await self.Send(session, j);
             }
         }
     }
     catch (Exception e)
     {
         Log.Error(e);
     }
 }
Esempio n. 16
0
            protected override void Run(Session session, M2C_MapUnitUpdate message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    MapUnitBotModule roamingBotModule = client.GetComponent <MapUnitBotModule>();
                    if (!roamingBotModule.isEnableToStartGame)
                    {
                        roamingBotModule._m2cCache.Enqueue(message);
                    }
                    else
                    {
                        roamingBotModule.SyncM2C_MapUnitUpdate(message);
                    }
                    //client.UserLog($"M2C_MapUnitUpdateHandler, DistanceTravelled: {roamingBotModule.DistanceTravelled}");
                }
            }
Esempio n. 17
0
            protected override void Run(Session session, M2C_TeamReadyModify message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    PartyBotModule partyBotModule = client.GetComponent <PartyBotModule>();
                    if (partyBotModule.teams.TryGetValue(partyBotModule.roomId, out var team))
                    {
                        for (int i = 0; i < team.teamMemberDataList.Count; i++)
                        {
                            if (team.teamMemberDataList[i].Uid == message.Uid)
                            {
                                team.teamMemberDataList[i].IsReady = message.IsReady;
                                break;
                            }
                        }
                    }
                    //client.UserLog($"M2C_TeamReadyModifyHandler");
                }
            }
Esempio n. 18
0
        public static async Task Login(this BenchmarkComponent self, Session session)
        {
            var send = new C2S_UserLogin();

            send.AccountId = 1;
            Log.Debug("发送");
            var ret = (S2C_UserLogin)await session.Call(send);

            Log.Debug(ret.ToString());
            if (ret.Tag == 0)
            {
                //var  send1 = new C2S_UserLoginHandler
            }
            Log.Debug("发送:" + ret);
            //发送进入房间
            var ret1 = (M2C_EnterRoom)await session.Call(new C2M_EnterRoom()
            {
                RoomType = 0, ActorId = ret.UnitId
            });

            Log.Debug(ret1.ToString());
        }
Esempio n. 19
0
            protected override void Run(Session session, M2C_TeamGoBattle message)
            {
                TestPlayerDataComponent testPlayerDataComponent = session.GetComponent <TestPlayerDataComponent>();
                BenchmarkComponent      benchmarkComponent      = Game.Scene.GetComponent <BenchmarkComponent>();

                if (benchmarkComponent.clients.TryGetValue(testPlayerDataComponent.testPlayerSetting.DeviceUniqueIdentifier, out var client))
                {
                    PartyBotModule   partyBotModule   = client.GetComponent <PartyBotModule>();
                    MapUnitBotModule mapUnitBotModule = client.GetComponent <MapUnitBotModule>();
                    mapUnitBotModule.mapUnitId = message.MapUnitId;
                    for (int i = 0; i < message.MapUnitInfos.Count; i++)
                    {
                        var info = message.MapUnitInfos[i];
                        mapUnitBotModule.mapUnitInfos.TryAdd(info.MapUnitId, new MapUnitBotModule.MapUnitData
                        {
                            mapUnitInfo = info,
                        });
                    }
                    partyBotModule.state = State.GoBattle;
                    partyBotModule._inputAsyncTimePre = partyBotModule.timerComponent.time;
                    //client.UserLog($"M2C_TeamGoBattleHandler");
                }
            }
Esempio n. 20
0
        public static async ETTask Send(this BenchmarkComponent self, Session session, int j)
        {
            try
            {
                await session.Call(new C2R_Ping());

                ++self.k;

                if (self.k % 100000 != 0)
                {
                    return;
                }

                long time2 = TimeHelper.ClientNow();
                long time  = time2 - self.time1;
                self.time1 = time2;
                Log.Info($"Benchmark k: {self.k} 每10W次耗时: {time} ms {session.Network.Count}");
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Esempio n. 21
0
        public static async void Update(this BenchmarkComponent self)
        {
            if (self.isOnProfiler)
            {
                self.UpdateFPS();
            }

            if (!self.isNeedToUpdate)
            {
                return;
            }
            self.isNeedToUpdate = false;
            if (self.clientList.Count != 0)
            {
                for (int i = 0; i < self.clientList.Count; i++)
                {
                    self.clientList[i].Update();
                }
            }
            await self.timerComponent.WaitForSecondAsync(self.updatePeriod);

            self.isNeedToUpdate = true;
        }
Esempio n. 22
0
        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);
            }
        }