Beispiel #1
0
        public Task ReceiveAsync(IContext context)
        {
            switch (context.Message)
            {
            case RegisterPid registerPid:
                ActorManagement.TryAddPid(registerPid.Sender, registerPid.Name);
                context.Respond(new Done());
                break;

            case RequestPid requestPid:
                var pid = ActorManagement.TryGetPid(requestPid.Name);
                context.Respond(new ResponsePid()
                {
                    Sender = pid
                });
                break;

            case RequestPackage package:
                ResponsePackage repPackage = new ResponsePackage();
                repPackage.InitPackage(package);
                IByteBuffer data = GameEnvironment.ActionDispatcher.TryEncodePackage(repPackage);
                SessionManager.PostSend(repPackage.UserId, data);
                break;
            }
            return(Actor.Done);
        }
Beispiel #2
0
 public Task ReceiveAsync(IContext context)
 {
     switch (context.Message)
     {
     case RequestPackage package:
         try
         {
             var pid = ActorManagement.GetOrLoadPid(package.ActorName);
             if (pid != null)
             {
                 var response = new ResponsePackage();
                 response.InitPackage(package);
                 response.Data = "注册成功";
                 pid.Tell(response);
             }
         }
         catch (Exception ex)
         {
         }
         break;
     }
     return(Actor.Done);
 }