private void ReceviedHQData(object sender, DataReceivedEventArgs args) { var msg = GZipHelper.GZipDecompressString(args.Data); if (msg.IndexOf("ping") != -1) //响应心跳包 { HQLastTime = DateTime.Now; SendHQXinTiao = false; var reponseData = msg.Replace("ping", "pong"); SendHQSubscribeTopic(reponseData); } else { JObject jomsg = (JObject)JsonConvert.DeserializeObject(msg); if (jomsg.Property("ch") != null) { string type = jomsg["ch"].ToString(); if (type.Contains("depth")) { QueryQuote5(jomsg); } else if (type.Contains("trade")) { QueryChengJiaoJia(jomsg); } } } }
private static void ReceviedMsg(object sender, DataReceivedEventArgs e) { var msg = GZipHelper.GZipDecompressString(e.Data); if (msg.IndexOf("ping") != -1) //响应心跳包 { var reponseData = msg.Replace("ping", "pong"); websocket.Send(reponseData); } else//接收消息 { if (msg.IndexOf("status") < 0) { if (msg.IndexOf("depth") >= 0) { //System.Diagnostics.Trace.WriteLine(msg); OnMessage?.Invoke(null, new HuoBiMessageReceivedEventArgs(msg)); } else if (msg.IndexOf("kline") >= 0) { } else if (msg.IndexOf("trade") >= 0) { OnMessage?.Invoke(null, new HuoBiMessageReceivedEventArgs(msg)); } } } }
public void Test() { var temp = "abc123!@#"; var comressed = GZipHelper.GZipCompressString(temp); var decomressed = GZipHelper.GZipDecompressString(comressed); Assert.AreEqual(temp, decomressed); }
/// <summary> /// 响应心跳包&接收消息 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> public static void ReceviedMsg(object sender, DataReceivedEventArgs args) { var msg = GZipHelper.GZipDecompressString(args.Data); if (msg.IndexOf("ping") != -1) //响应心跳包 { var reponseData = msg.Replace("ping", "pong"); websocket.Send(reponseData); } else//接收消息 { OnMessage?.Invoke(null, new GateMessageReceivedEventArgs(msg)); } }
/// <summary> /// 响应心跳包&接收消息 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> public static void ReceviedMsg(object sender, DataReceivedEventArgs args) { var msg = GZipHelper.GZipDecompressString(args.Data); if (msg.IndexOf("ping") != -1) //响应心跳包 { Log.Info("响应心跳" + msg); var reponseData = msg.Replace("ping", "pong"); websocket.Send(reponseData); } else//接收消息 { //Log.Info("接收消息1" + msg); //var e =new HuoBiMessageReceivedEventArgs(msg); //e.MsgPackage(msg); OnMessage?.Invoke(null, new HuoBiMessageReceivedEventArgs(msg)); } }
private void OnSocketData(object sender, WebSocket4Net.DataReceivedEventArgs args) { WebSocket ws = (WebSocket)sender; var msgStr = GZipHelper.GZipDecompressString(args.Data); //System.Diagnostics.Trace.WriteLine($"{msgStr}"); Huobi.WsResponseMessage wsMsg = JsonConvert.DeserializeObject <Huobi.WsResponseMessage>(msgStr); if (wsMsg.ping != 0) { ws.Send(JsonConvert.SerializeObject(new Huobi.WsPong() { pong = wsMsg.ping })); } else if (wsMsg.pong != 0) { ws.Send(JsonConvert.SerializeObject(new Huobi.WsPing() { ping = wsMsg.pong })); } else if (wsMsg.subbed != null) { // ignore; if (wsMsg.status != "ok") { System.Diagnostics.Trace.WriteLine($"Failed to subscribe to {wsMsg.subbed}"); } else { System.Diagnostics.Trace.WriteLine($"Subscribed to {wsMsg.subbed}"); } } else { var parts = wsMsg.ch.Split('.'); var response = JsonConvert.DeserializeObject <Huobi.WsTickResponseMessage>(msgStr); if (DetailTick != null) { DetailTick.Invoke(parts[1], response.tick); } } }
public override void ReceviedData(object sender, DataReceivedEventArgs args) { var msg = GZipHelper.GZipDecompressString(args.Data); if (msg.IndexOf("ping") != -1) //响应心跳包 { LastTime = DateTime.Now; SendXinTiao = false; var reponseData = msg.Replace("ping", "pong"); SendSubscribeTopic(reponseData); } else if (msg.IndexOf("auth") != -1) { JObject jomsg = (JObject)JsonConvert.DeserializeObject(msg); if (jomsg["err-code"].ToString() == "0") { AccountId = jomsg["data"]["user-id"].ToString(); foreach (var item in topicDic) { SendSubscribeTopic(item.Value); } isOpened = true; } } else { JObject jomsg = (JObject)JsonConvert.DeserializeObject(msg); if (jomsg.Property("topic") != null) { string type = jomsg["topic"].ToString(); if (type.Contains("orders")) { QueryWeiTuo(jomsg); } else if (type.Contains("accounts.list")) { QueryZiJin(jomsg); } } } }
/// <summary> /// 响应心跳包&接收消息 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> public static void ReceviedMsg(object sender, DataReceivedEventArgs args) { var msg = GZipHelper.GZipDecompressString(args.Data); if (msg.IndexOf("ping") != -1) //响应心跳包 { var reponseData = msg.Replace("ping", "pong"); websocket.Send(reponseData); //Console.WriteLine(reponseData); } else//接收消息 { OnMessage?.Invoke(null, new HuoBiMessageReceivedEventArgs(msg)); JObject jObj = JObject.Parse(msg); try { Console.WriteLine($"当前价格:{jObj["tick"]["close"]} 1分钟交易量:{jObj["tick"]["amount"]}"); } catch (Exception e) { Console.WriteLine(msg); } } }
private object[] PrepareActionParams(HttpContext context, MethodInfo mi) { HttpRequest request = context.Request; ParameterInfo[] parameters = mi.GetParameters(); object[] paramValues = new object[parameters.Length]; NameValueCollection requestParams = new NameValueCollection(string.Compare(request.RequestType, "get", true) == 0 ? request.QueryString : request.Form); if (InternalArgsHandler != null) { InternalArgsHandler(requestParams); } if (request.Headers["UseGZip"] == ((int)UseGZip.Param).ToString() || request.Headers["UseGZip"] == ((int)UseGZip.Both).ToString()) { DateTime s = DateTime.Now; var param = GZipHelper.GZipDecompressString(request.Params["param"]); DateTime e = DateTime.Now; TimeSpan span = e - s; context.Response.Headers.Add("UnGZip-Time", span.TotalMilliseconds.ToString()); var dic = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(param); for (int i = 0; i < parameters.Length; i++) { string queryValue = dic[parameters[i].Name]; if (string.IsNullOrEmpty(queryValue)) { paramValues[i] = null; } else { paramValues[i] = DataConverter.ChangeType(queryValue, parameters[i].ParameterType); } if (parameters[i].ParameterType == typeof(string) && paramValues[i] != null) { paramValues[i] = HtmlDecode(paramValues[i].ToString()); } } } else { for (int i = 0; i < parameters.Length; i++) { string queryValue = requestParams[parameters[i].Name]; if (string.IsNullOrEmpty(queryValue)) { paramValues[i] = null; } else { paramValues[i] = DataConverter.ChangeType(queryValue, parameters[i].ParameterType); } if (parameters[i].ParameterType == typeof(string) && paramValues[i] != null) { paramValues[i] = HtmlDecode(paramValues[i].ToString()); } } } return(paramValues); }