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); }
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); } }
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); } }
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(); } }
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); } }
public MessageHead GetReadHeader(MessageStructure reader) { return(reader.ReadHeadGzip()); }