コード例 #1
0
        private void _webSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            var message = JsonConvert.DeserializeObject <JArray>(e.Message);

            if (message.Count == 0 || message[0].Type != JTokenType.Integer)
            {
                return;
            }

            var msgCode = message[0].Value <int>();

            switch (msgCode)
            {
            case MessageHelper.Heartbeat:

                break;

            case MessageHelper.AccountNotifications:

                break;

            case MessageHelper.TickerData:
                if (message.Count > 2)
                {
                    for (int i = 2; i < message.Count; i++)
                    {
                        if (message[i].Type != JTokenType.Array && message[i].HasValues)
                        {
                            continue;
                        }

                        var tick = TickData.TickDataFromMessage(message[i].Values());

                        if (tick != null)
                        {
                            OnTickerUpdate?.Invoke(this, tick.ToQuote());
                        }
                    }
                }
                break;

            default:
                //MessageHelper.ExchangeVolume24Hours:

                break;
            }
        }
コード例 #2
0
ファイル: TickData.cs プロジェクト: mpvyard/ServiceNimbus
        internal static TickData TickDataFromMessage(IEnumerable <JToken> values)
        {
            if (values.Count() != 10)
            {
                return(null);
            }

            var valid    = true;
            var tickData = new TickData()
            {
                CurrencyPairId      = ConvertToInt(values.ElementAt(0), ref valid),
                LastTradePrice      = ConvertStringToDecimal(values.ElementAt(1), ref valid),
                LowestAsk           = ConvertStringToDecimal(values.ElementAt(2), ref valid),
                HighestBid          = ConvertStringToDecimal(values.ElementAt(3), ref valid),
                PercentChange       = ConvertStringToDecimal(values.ElementAt(4), ref valid),
                BaseVolume24Hours   = ConvertStringToDecimal(values.ElementAt(5), ref valid),
                QuoteeVolume24Hours = ConvertStringToDecimal(values.ElementAt(6), ref valid),
                IsFrozen            = (byte)ConvertToInt(values.ElementAt(7), ref valid),
                HighestPrice24Hours = ConvertStringToDecimal(values.ElementAt(8), ref valid),
                LowstPrice24Hours   = ConvertStringToDecimal(values.ElementAt(9), ref valid)
            };

            return(valid ? tickData : null);
        }