Ejemplo n.º 1
0
        /// <summary>
        /// 消息处理
        /// </summary>
        /// <param name="state"></param>
        private void ProcessMessage(object state)
        {
            CommandArgument cmd    = (CommandArgument)state;
            var             data   = (StringArgumentData)cmd.Data;
            IEventWorker    worker = EventWorkerContainer.CreateWorker();
            var             arg    = worker.ToArgument(cmd.command, data.Argument);

            using (RpcContextScope.CreateScope(cmd, arg))
            {
                try
                {
                    worker.Process(cmd.command, arg);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    if (cmd.cmdId == RpcEnvironment.NET_COMMAND_CALL)
                    {
                        RpcProxy.Result(new CommandResult
                        {
                            Status  = RpcEnvironment.NET_COMMAND_STATE_SERVER_UNKNOW,
                            Message = e.Message
                        });
                    }
                }
            }
        }