Exemple #1
0
        public static void OnAzMessageReciver(object sender, MessageReceivedEventArgs args)
        {
            //获取快照数据
            if (args.Command == CommandType.MarketDepthData)
            {
                var      model       = ProtobufHelper.Deserialize <MarketDepthDto>(args.Message);
                DepthDto depthResult = ConvertDepth(model);
                Depth.AddOrUpdate(model.Market, depthResult, (key, v) => { return(depthResult); });
            }
            else if (args.Command == CommandType.MarketDepthDiff)
            {
                var diffModel = ProtobufHelper.Deserialize <MarketDepthDiff>(args.Message);
                //深度无快照,或者快照数据的版本与差异数据起始版本不一致时,重新订阅获取快照
                if (!Depth.ContainsKey(diffModel.Market) || Depth[diffModel.Market].Version != diffModel.StartVersion)
                {
                    azWebsocket.SendMarketDepth("eth_btc");
                }
                else
                {
                    UpdateDepth(diffModel);
                }
            }

            Console.WriteLine("数据更新");
        }
Exemple #2
0
        /// <summary>
        /// 接收消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void ReceivedMsg(object sender, WebSocket4Net.DataReceivedEventArgs args)
        {
            var msg       = args.Data;
            var codeArray = new byte[2] {
                msg[0], msg[1]
            };
            var code = (int)ProtobufHelper.GetCommand(codeArray);

            OnMessage?.Invoke(null, new MessageReceivedEventArgs(msg, (CommandType)Enum.Parse(typeof(CommandType), code.ToString())));
        }
Exemple #3
0
        public void SendMarketDepth(string market)
        {
            var topicObj = new SubMarketDepth()
            {
                Market    = market,
                Limit     = 10,
                Precision = 5
            };

            SendSubscribeTopic(ProtobufHelper.Serializer(topicObj, 906));
        }
Exemple #4
0
        public void SubMarketDepth(string market)
        {
            var topicObj = new SubMarketDepth()
            {
                Market    = market,
                Limit     = 10,
                Precision = 5
            };

            topicDic.Add("Depth", ProtobufHelper.Serializer(topicObj, 906));
        }
Exemple #5
0
        public void SubMarketOrder(string market)
        {
            var topicObj = new SubMarketOrder()
            {
                Market    = market,
                Count     = 10,
                Subscribe = true
            };

            topicDic.Add("Order", ProtobufHelper.Serializer(topicObj, 907));
        }
Exemple #6
0
 public void SubUserOrderInfo(string[] markets)
 {
     foreach (var market in markets)
     {
         var topicObj = new LoginToMarket()
         {
             Market = market
         };
         topicDic.Add(market + "loginM", ProtobufHelper.Serializer(topicObj, 1000));
     }
 }