/// <summary> /// Add subscription to socket /// </summary> /// <param name="subscriptionRequest"></param> public void AddSubscription(DataSubscriptionRequest subscriptionRequest) { //Check for all subscription if (!_subscribed.Select(x => x.GetSubscriptionName()).Contains(subscriptionRequest.GetSubscriptionName())) { _subscribed.Add(subscriptionRequest); } //Logging _log.Info("Subscribed to subscription " + subscriptionRequest.GetSubscriptionName()); }
/// <summary> /// Add subscription to security /// </summary> /// <param name="subscriptionRequest"></param> public void AddSubscription(DataSubscriptionRequest subscriptionRequest) { if (!_subscriptions.Select(x => x.GetSubscriptionName()).Contains(subscriptionRequest.GetSubscriptionName())) { _subscriptions.Add(subscriptionRequest); } }
/// <summary> /// Remove a subscription for a data feed /// </summary> /// <param name="subscriptionRequest"></param> public void RemoveSubscription(DataSubscriptionRequest subscriptionRequest) { string subscriptionname = subscriptionRequest.GetSubscriptionName(); _log.Info("Unsubscribing to subscription " + subscriptionname); if (_subscribed.Contains(subscriptionname)) { _subscribed.Remove(subscriptionname); _subscriberSocket.Unsubscribe(subscriptionname); } }
/// <summary> /// Stop retrieving data for the requested security /// </summary> /// <param name="subscriptionRequest"></param> public void RemoveSubscription(DataSubscriptionRequest subscriptionRequest) { try { var ticker = GetFeedTicker(subscriptionRequest.Ticker); _log.Info("Unsubscribing to ticker " + ticker); _subscribedtickers.Remove(ticker); var socket = _connecteddepthsockets.FirstOrDefault(x => x.Key == ticker); socket.Value.Close(); socket.Value.Dispose(); _connecteddepthsockets.Remove(ticker); socket = _connectedtradesockets.FirstOrDefault(x => x.Key == ticker); socket.Value.Close(); socket.Value.Dispose(); _connectedtradesockets.Remove(ticker); } catch (Exception e) { _log.Error(e, $"Could not remove subscription {subscriptionRequest.GetSubscriptionName()} from binance feed!"); } }
/// <summary> /// Add subscription to socket /// </summary> /// <param name="subscriptionRequest"></param> public void AddSubscription(DataSubscriptionRequest subscriptionRequest) { //Check for all subscription string subscriptionname = subscriptionRequest.GetSubscriptionName(); if (subscriptionRequest.Ticker == FireHoseTicker) { _subscriberSocket.Subscribe(""); //Firehose } else if (!_subscribed.Contains(subscriptionname) && CanSubscribe(subscriptionRequest.Ticker)) { //Add to known subscription _subscribed.Add(subscriptionname); //Add subscription _subscriberSocket.Subscribe(subscriptionname); } //Logging _log.Info("Subscribed to subscription " + subscriptionname); }