Exemple #1
0
        }//end sub

        /// <summary>
        /// 处理用户的请求消息
        /// </summary>
        /// <param name="e"></param>
        public void Execute(MessageRequestEventArgs e)
        {
            string message = e.MessageText;

            if (ServiceRequest.IsServiceUrl(message))
            {
                string identity = e.Listener.Identity;

                string   processMesssage = string.Empty;
                DateTime beginTime       = DateTime.Now;
                processMesssage = string.Format("[{0}]正在处理服务请求--From: {1}:{2},Identity:{3}\r\n>>[RMID:{4}]{5}",
                                                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
                                                e.Listener.FromIP, e.Listener.FromPort, identity, e.Listener.MessageID,
                                                message.Length > 256 ? message.Substring(0, 256) : message);
                Console.WriteLine(processMesssage);

                int msgId = e.Listener.MessageID;
                //执行服务方法的时候,由服务方法指名是否需要维持会话状态
                ServiceContext context = new ServiceContext(message);
                context.ServiceErrorEvent     += new EventHandler <ServiceErrorEventArgs>(currentProcess_ServiceErrorEvent);
                context.Request.ClientIP       = e.Listener.FromIP;
                context.Request.ClientPort     = e.Listener.FromPort;
                context.Request.ClientIdentity = identity;
                context.InitRequestParameters();
                context.User = MessageProcessBase.GetServiceIdentity(e.Listener);


                context.ProcessService(e.Listener.SessionID);

                string   result   = context.Response.AllText;
                bool     noResult = context.NoResultRecord(result);
                DateTime endTime  = DateTime.Now;
                processMesssage = string.Format("[{0}]请求处理完毕({1}ms)--To: {2}:{3},Identity:{4}\r\n>>[RMID:{5}]消息长度:{6} -------",
                                                DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
                                                endTime.Subtract(beginTime).TotalMilliseconds,
                                                e.Listener.FromIP, e.Listener.FromPort, identity, e.Listener.MessageID,
                                                noResult ? "[Empty Result]" : result.Length.ToString("###,###") + "字节");
                Console.WriteLine(processMesssage);

                e.ResultText = result;
                //此处内容可能很大,不能全程输出
                if (context.Response.ResultType == typeof(byte[]))
                {
                    Console.WriteLine("[byte Content]");
                }
                else
                {
                    Console.WriteLine("result:{0}", result.Length > 100 ? result.Substring(0, 100) + " ..." : result);
                }
            }
            else
            {
                e.ResultText = "OK";
            }
        }
Exemple #2
0
        static void Instance_ListenerRequestMessage(object sender, MessageRequestEventArgs e)
        {
            MessageProcesser processer = new MessageProcesser();

            try
            {
                processer.Execute(e);
            }
            catch (Exception ex)
            {
                Processer_ServiceErrorEvent(processer, new ServiceErrorEventArgs(ex));
            }
        }
Exemple #3
0
        static void Instance_ListenerRequestMessage(object sender, MessageRequestEventArgs e)
        {
            MessageProcesser processer = new MessageProcesser();

            processer.Execute(e);
        }