コード例 #1
0
        /// <inheritdoc/>
        protected override void OnMessageReceived(
            String message)
        {
            try
            {
                var rootArray = JArray.Parse(message);

                foreach (var root in rootArray)
                {
                    var stream = root["ev"].ToString();

                    switch (stream)
                    {
                    case TradesChannel:
                        TradeReceived?.Invoke(root.ToObject <JsonStreamTrade>());
                        break;

                    case QuotesChannel:
                        QuoteReceived?.Invoke(root.ToObject <JsonStreamQuote>());
                        break;

                    case MinuteAggChannel:
                        MinuteAggReceived?.Invoke(root.ToObject <JsonStreamAgg>());
                        break;

                    case SecondAggChannel:
                        SecondAggReceived?.Invoke(root.ToObject <JsonStreamAgg>());
                        break;

                    case StatusMessage:
                        handleAuthorization(root.ToObject <JsonConnectionStatus>());
                        break;

                    default:
                        HandleError(new InvalidOperationException(
                                        $"Unexpected message type '{stream}' received."));
                        break;
                    }
                }
            }
            catch (Exception exception)
            {
                HandleError(exception);
            }
        }
コード例 #2
0
 private void handleMinuteAggChannel(
     JToken token) =>
 MinuteAggReceived.DeserializeAndInvoke <IStreamAgg, JsonStreamAgg>(token);