protected virtual void OnSendingMessageArrival(MessageWrapper e) { if (SendingMessageArrivalEvent != null) SendingMessageArrivalEvent(this, e); }
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); }
protected virtual void OnReceivingMessageArrival(MessageWrapper e) { if (ReceivingMessageArrivalEvent != null) ReceivingMessageArrivalEvent(this, e); }
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; }