Exemplo n.º 1
0
        public static MessageStructure Create(string serverUrl, string requestParams, out MessageHead header, bool isSocket, int actionId, string pid)
        {
            header = null;
            MessageStructure msgReader = null;

            if (isSocket)
            {
                msgReader = DoRequest(serverUrl, requestParams, actionId, pid);
            }
            else
            {
                Encoding encode     = Encoding.GetEncoding("utf-8");
                string   postData   = "?d=" + GetSign(requestParams);
                byte[]   bufferData = encode.GetBytes(postData);

                HttpWebRequest serverRequest = (HttpWebRequest)WebRequest.Create(serverUrl);
                serverRequest.Method        = "POST";
                serverRequest.ContentType   = "application/x-www-form-urlencoded";
                serverRequest.ContentLength = bufferData.Length;
                Stream requestStream = serverRequest.GetRequestStream();
                requestStream.Write(bufferData, 0, bufferData.Length);
                requestStream.Close();
                //
                WebResponse serverResponse = serverRequest.GetResponse();
                Stream      responseStream = serverResponse.GetResponseStream();
                msgReader = MessageStructure.Create(responseStream, Encoding.UTF8);
            }
            if (msgReader != null)
            {
                header = msgReader.ReadHeadGzip();
            }
            return(msgReader);
        }
Exemplo n.º 2
0
 private static void OnNetHttpCallback(object sender, RemoteEventArgs e)
 {
     try
     {
         RemoteService proxy = sender as RemoteService;
         if (proxy == null)
         {
             return;
         }
         using (var ms = new MessageStructure(e.Data))
         {
             var head = ms.ReadHeadGzip();
             if (head != null)
             {
                 var package = proxy.Find(head.MsgId);
                 if (package != null)
                 {
                     package.Message = ms.ReadBuffer();
                     proxy.Remove(head.MsgId);
                     package.OnCallback();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         TraceLog.WriteError("OnNetHttpCallback error:{0}", ex);
     }
 }
Exemplo n.º 3
0
        private static void OnReceive(object sender, SocketEventArgs e)
        {
            var myConnect = ((ClientSocket)sender).UserData as MyConnect;

            if (myConnect != null)
            {
                var stream = new MessageStructure(e.Data);
                var head   = stream.ReadHeadGzip();
                var pack   = new MyPack()
                {
                    Head = head, Data = e.Data
                };
                myConnect.actionPools.Enqueue(pack);
            }
        }
Exemplo n.º 4
0
        private void DoRunProcess(byte[] sendData)
        {
            bool success = false;

            try
            {
                MessageStructure reader = null;
                MessageHead      head   = null;
                _stepTimer.StartTime();
                _session.Proxy.SendAsync(sendData, data =>
                {
                    try
                    {
                        if (data.Length == 0)
                        {
                            return(true);
                        }
                        reader = new MessageStructure(data);
                        head   = reader.ReadHeadGzip();
                        return(head.Action.ToString() == Action);
                    }
                    catch (Exception ex)
                    {
                        TraceLog.WriteError("Step {0} error:{1}", Action, ex);
                        return(false);
                    }
                });

                if (CheckCompleted(head) && DecodePacket(reader, head))
                {
                    success = true;
                    _stepTimer.Completed();
                }
            }
            catch (Exception ex)
            {
                _stepTimer.PushError(ex.Message);
            }
            finally
            {
                _stepTimer.StopTime();
            }

            if (success && ChildStep != null)
            {
                ChildStep.StartRun();
            }
        }
Exemplo n.º 5
0
 private void DoReceive(SocketClient client, byte[] data)
 {
     try
     {
         MessageStructure writer = new MessageStructure(data);
         var head = writer.ReadHeadGzip();
         if (head.Success)
         {
             SuccessCallback(writer, head);
         }
         else
         {
             FailCallback(head);
         }
     }
     catch (Exception ex)
     {
         new BaseLog().SaveLog(ex);
     }
 }
Exemplo n.º 6
0
 public MessageHead GetReadHeader(MessageStructure reader)
 {
     return(reader.ReadHeadGzip());
 }