Ejemplo n.º 1
0
 public Task ReceiveAsync(IContext context)
 {
     switch (context.Message)
     {
     case RequestPackage package:
         //ResponsePackage repPackage = new ResponsePackage();
         //repPackage.InitPackage(package);
         //IByteBuffer data = GameEnvironment.ActionDispatcher.TryEncodePackage(repPackage);
         //var session = SessionManager.Get(repPackage.SessionId);
         //session.PostSend(data);
         RequestData reqPackage = new RequestData();
         reqPackage.ActorName = ActorManagement.GetActorName <LoginActor>();
         var loginPid = ActorManagement.GetOrLoadPid <LoginActor>();
         loginPid.Tell(reqPackage);
         break;
     }
     return(Actor.Done);
 }
Ejemplo n.º 2
0
        public void DispatchPackage(RequestData package)
        {
            PID          srcPid   = null;
            ResponseData response = new ResponseData();

            response.IntiPackage(package);
            try
            {
                srcPid = ActorManagement.GetOrLoadPid(package.ActorName);
                if (srcPid == null)
                {
                    throw new Exception("获取Actor失败");
                }

                switch ((RpcMsgType)package.MessageType)
                {
                case RpcMsgType.LoadRoomInfo:

                    break;

                case RpcMsgType.LoadUserInfo:

                    break;
                }
            }
            catch (Exception ex)
            {
                response.ErrorCode = 10000;
                response.ErrorInfo = ex.Message;
                TraceLog.WriteError("{0},{1}", ex.Message, ex.StackTrace);
            }
            finally
            {
                if (srcPid != null)
                {
                    srcPid.Tell(response);
                }
            }
        }
Ejemplo n.º 3
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);
 }