protected override void FromApp(SocketApplication.Message message, SocketApplication.Session session) { if (message.IsMessage((int)SOAMessageType.DoSOARedirectRequest)) { try { if (DoResponseAction != null) { var reqbag = LJC.FrameWork.EntityBuf.EntityBufCore.DeSerialize <SOARedirectRequest>(message.MessageBuffer); var obj = DoResponseAction(reqbag.FuncId, reqbag.Param, session.SessionID); if (!string.IsNullOrWhiteSpace(message.MessageHeader.TransactionID)) { var retmsg = new SocketApplication.Message((int)SOAMessageType.DoSOARedirectResponse); retmsg.MessageHeader.TransactionID = message.MessageHeader.TransactionID; SOARedirectResponse resp = new SOARedirectResponse(); resp.IsSuccess = true; resp.ResponseTime = DateTime.Now; resp.Result = LJC.FrameWork.EntityBuf.EntityBufCore.Serialize(obj); retmsg.SetMessageBody(resp); session.SendMessage(retmsg); } else { throw new Exception("服务未实现"); } } } catch (Exception ex) { var retmsg = new SocketApplication.Message((int)SOAMessageType.DoSOARedirectResponse); retmsg.MessageHeader.TransactionID = message.MessageHeader.TransactionID; SOARedirectResponse resp = new SOARedirectResponse(); resp.IsSuccess = false; resp.ResponseTime = DateTime.Now; resp.ErrMsg = ex.ToString(); retmsg.SetMessageBody(resp); try { session.SendMessage(retmsg); } catch (Exception exx) { OnError(exx); } } } else { base.FromApp(message, session); } }
protected override byte[] DoMessage(SocketApplication.Message message) { if (message.IsMessage((int)SOAMessageType.RegisterService)) { return(message.MessageBuffer); } else if (message.IsMessage((int)SOAMessageType.UnRegisterService)) { return(message.MessageBuffer); } return(base.DoMessage(message)); }