コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
        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));
                    }
                }
            }
        }
コード例 #3
0
        public void Test()
        {
            var temp        = "abc123!@#";
            var comressed   = GZipHelper.GZipCompressString(temp);
            var decomressed = GZipHelper.GZipDecompressString(comressed);

            Assert.AreEqual(temp, decomressed);
        }
コード例 #4
0
ファイル: GateWSApi.cs プロジェクト: demon28/Remover
        /// <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));
            }
        }
コード例 #5
0
        /// <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));
            }
        }
コード例 #6
0
        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);
                }
            }
        }
コード例 #7
0
        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);
                    }
                }
            }
        }
コード例 #8
0
        /// <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);
                }
            }
        }
コード例 #9
0
        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);
        }