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);
            }
        }
Example #2
0
 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));
 }