Exemplo n.º 1
0
 protected virtual void OnSendingMessageArrival(MessageWrapper e)
 {
     if (SendingMessageArrivalEvent != null)
         SendingMessageArrivalEvent(this, e);
 }
Exemplo n.º 2
0
        public static MessageWrapper Parse(string message, MessageSource msgSource)
        {
            //LST_OPER_TYPE|OK|20101118191412|BEMP12001|.......
            string[] result = KeepSocketOption.ME.Spliter.Split(message);
            //第1个域,命令字
            if (result.Length <= 0 || string.IsNullOrEmpty(result[0]))
            {
                return(null);
            }
            MessageWrapper wrapper = new MessageWrapper();

            wrapper.Source  = msgSource;
            wrapper.Command = result[0];

            //第2个域,可能是“OK”,“ERR”
            if (result.Length <= 1)
            {
                return(wrapper);
            }
            if (result[1].Equals("ERR"))
            {
                wrapper.Status = MessageStatus.ERROR;
            }
            else if (result[1].Equals("OK"))
            {
                wrapper.Status = MessageStatus.OK;
            }
            else
            {
                try
                {
                    wrapper.Status = (MessageStatus)Enum.Parse(typeof(MessageStatus), result[1]);
                }
                catch (Exception e)
                {
                    wrapper.Status = MessageStatus.ERROR;
                }
            }

            //第3个域,可能是“OK”,“ERR”
            if (result.Length <= 2)
            {
                return(wrapper);
            }
            wrapper._TimeTicks = result[2].Trim();

            //第4个域,本次交易(对话)的ID
            if (result.Length <= 3)
            {
                return(wrapper);
            }
            wrapper._TalkId = result[3].Trim();

            //第5个域,实际数据
            if (result.Length <= 4)
            {
                return(wrapper);
            }
            //实际数据的具体解析交由Protocol组件中的解析器去解析
            wrapper.Data = result[4].Trim().TrimEnd('@');
            return(wrapper);
        }
Exemplo n.º 3
0
 protected virtual void OnReceivingMessageArrival(MessageWrapper e)
 {
     if (ReceivingMessageArrivalEvent != null)
         ReceivingMessageArrivalEvent(this, e);
 }
Exemplo n.º 4
0
        public static MessageWrapper Parse(string message, MessageSource msgSource)
        {
            //LST_OPER_TYPE|OK|20101118191412|BEMP12001|.......
            string[] result = KeepSocketOption.ME.Spliter.Split(message);
            //第1个域,命令字
            if (result.Length <= 0 || string.IsNullOrEmpty(result[0]))
                return null;
            MessageWrapper wrapper = new MessageWrapper();
            wrapper.Source = msgSource;
            wrapper.Command = result[0];

            //第2个域,可能是“OK”,“ERR”
            if (result.Length <= 1)
                return wrapper;
            if (result[1].Equals("ERR"))
                wrapper.Status = MessageStatus.ERROR;
            else if (result[1].Equals("OK"))
                wrapper.Status = MessageStatus.OK;
            else
            {
                try
                {
                    wrapper.Status = (MessageStatus)Enum.Parse(typeof(MessageStatus), result[1]);
                }
                catch (Exception e)
                {
                    wrapper.Status = MessageStatus.ERROR;
                }
            }

            //第3个域,可能是“OK”,“ERR”
            if (result.Length <= 2)
                return wrapper;
            wrapper._TimeTicks = result[2].Trim();

            //第4个域,本次交易(对话)的ID
            if (result.Length <= 3)
                return wrapper;
            wrapper._TalkId = result[3].Trim();

            //第5个域,实际数据
            if (result.Length <= 4)
                return wrapper;
            //实际数据的具体解析交由Protocol组件中的解析器去解析
            wrapper.Data = result[4].Trim().TrimEnd('@');
            return wrapper;
        }