Ejemplo n.º 1
0
 protected override Task RunAsync(UdpResult result, UdpShared udpshared)
 {
     return(Task.Factory.StartNew(() =>
     {
         uint eid;
         if (udpshared.entities.TryGetValue(result.endPoint, out eid))
         {
             ushort func = result.byteStream.GetUShort();
             //DebugUtility.Log($"DealMsg::func::{func}");
             using (IPay paylodable = udpshared.msgMaper.TakeMsgClone(func))
             {
                 if (paylodable == null)
                 {
                     return;
                 }
                 //DebugUtility.Log($"DealMsg::func::{func}");
                 paylodable.GetFrom(result.byteStream);
                 ADealer dealer = udpshared.msgMaper.TakeDealer(func);
                 Entity entity;
                 if (udpshared.world.TryGetEntity(eid, out entity))
                 {
                     dealer?.Run(entity, paylodable);
                 }
             }
             //DebugUtility.Log($"DealMsg:: id::{entity.Id}");
         }
     }));
 }
Ejemplo n.º 2
0
        protected override Task RunAsync(UdpResult result, UdpShared udpshared)
        {
            uint eid;

            udpshared.entities.TryGetValue(result.endPoint, out eid);
            udpshared.connectTcs.SetResult(eid);
            return(Task.CompletedTask);
        }
Ejemplo n.º 3
0
 protected override Task RunAsync(UdpResult result, UdpShared udpshared)
 {
     return(Task.Factory.StartNew(() =>
     {
         if (!udpshared.entities.ContainsKey(result.endPoint))
         {
             Entity e = udpshared.world.AddEntity();
             e.Add(new UdpField(result.endPoint));
             udpshared.entities.Add(result.endPoint, e.Id);
             //DebugUtility.Log($"Accept::RunAsync ID={e.Id}");
             udpshared.SendHead(result.endPoint, ConDefine.onConnect);
         }
     }));
 }
Ejemplo n.º 4
0
 protected override Task RunAsync(UdpResult result, UdpShared udpshared)
 {
     return(Task.Factory.StartNew(() =>
     {
         uint eid;
         if (udpshared.entities.TryGetValue(result.endPoint, out eid))
         {
             Entity e;
             if (udpshared.world.TryGetEntity(eid, out e))
             {
                 udpshared.world.DestroyEntity(e);
                 udpshared.entities.Remove(result.endPoint);
             }
             udpshared.SendHead(result.endPoint, ConDefine.onDisconect);
         }
     }));
 }
Ejemplo n.º 5
0
 protected abstract Task RunAsync(UdpResult result, UdpShared udpshared);
Ejemplo n.º 6
0
        public async void Run(UdpResult result, UdpShared world)
        {
            await RunAsync(result, world).ConfigureAwait(false);

            ByteStream.Return(result.byteStream as ByteStream);
        }