Пример #1
0
        private static async void OnCreateRoom(this UILobbyComponent self)
        {
            try
            {
                using (Session session = Game.Scene.GetComponent <NetOuterComponent>().Create("127.0.0.1:10001"))
                {
                    R2C_Login r2CLogin = await session.Call <C2R_Login, R2C_Login>(new C2R_Login()
                    {
                        Account = "abcdef", Password = "******"
                    });

                    Session       gateSession  = Game.Scene.GetComponent <NetOuterComponent>().Create(r2CLogin.Address);
                    G2C_LoginGate g2CLoginGate = await gateSession.Call <C2G_LoginGate, G2C_LoginGate>(new C2G_LoginGate(r2CLogin.Key));

                    Log.Info("登陆gate成功!");
                }
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Пример #2
0
        public async Task Send(Session session, int j)
        {
            try
            {
                await session.Call <R2C_Ping>(new C2R_Ping());

                ++this.k;

                if (this.k % 10000 != 0)
                {
                    return;
                }

                long time2 = TimeHelper.ClientNow();
                long time  = time2 - this.time1;
                this.time1 = time2;
                Log.Info($"Benchmark k: {this.k} 每10W次耗时: {time} ms");
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Пример #3
0
        private async void RequestLock()
        {
            try
            {
                Session         session       = Game.Scene.GetComponent <NetInnerComponent>().Get(this.address);
                string          serverAddress = Game.Scene.GetComponent <StartConfigComponent>().StartConfig.ServerIP;
                G2G_LockRequest request       = new G2G_LockRequest {
                    Id = this.Entity.Id, Address = serverAddress
                };
                await session.Call <G2G_LockResponse>(request);

                this.status = LockStatus.Locked;

                foreach (TaskCompletionSource <bool> taskCompletionSource in this.queue)
                {
                    taskCompletionSource.SetResult(true);
                }
                this.queue.Clear();
            }
            catch (Exception e)
            {
                Log.Error($"获取锁失败: {this.address} {this.Entity.Id} {e}");
            }
        }
Пример #4
0
 public async void SaveLog(Disposer disposer)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call(new DBSaveRequest { Disposer = disposer, NeedCache = false, CollectionName = "Log" });
 }
Пример #5
0
 public async Task Save(Disposer disposer, bool needCache, CancellationToken cancellationToken)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call(new DBSaveRequest { Disposer = disposer, NeedCache = needCache }, cancellationToken);
 }
Пример #6
0
 public async Task SaveBatch(List <Disposer> disposers, bool needCache = true)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call(new DBSaveBatchRequest { Disposers = disposers, NeedCache = needCache });
 }
Пример #7
0
 public async Task Save(Disposer disposer, bool needCache = true)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call <DBSaveResponse>(new DBSaveRequest { Disposer = disposer, NeedCache = needCache });
 }
Пример #8
0
 public async void SaveLog(Entity entity)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call <DBSaveResponse>(new DBSaveRequest { Entity = entity, NeedCache = false, CollectionName = "Log" });
 }
Пример #9
0
 public async Task Save(Entity entity, bool needCache, CancellationToken cancellationToken)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call <DBSaveResponse>(new DBSaveRequest { Entity = entity, NeedCache = needCache }, cancellationToken);
 }
Пример #10
0
 public async Task SaveBatch(List <Entity> entitys, bool needCache = true)
 {
     Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(dbAddress);
     await session.Call <DBSaveBatchResponse>(new DBSaveBatchRequest { Entitys = entitys, NeedCache = needCache });
 }