You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
using Binance.Net.Clients;
|
|
using Binance.Net.Enums;
|
|
using System.Threading;
|
|
|
|
namespace SDKAdapter.WebSockets.Market
|
|
{
|
|
public class BinanceSpotMarketWebSocketClient : SpotMarketWebSocketClient
|
|
{
|
|
private BinanceSocketClient binanceSocketClient;
|
|
private CancellationTokenSource cancellationTokenSource;
|
|
|
|
public BinanceSpotMarketWebSocketClient(string symbol, NLog.ILogger logger) : base(symbol, logger)
|
|
{
|
|
binanceSocketClient = new BinanceSocketClient();
|
|
}
|
|
|
|
public override void Start()
|
|
{
|
|
if (IsConnected)
|
|
return;
|
|
IsConnected = true;
|
|
cancellationTokenSource = new CancellationTokenSource();
|
|
binanceSocketClient.SpotStreams.SubscribeToKlineUpdatesAsync(Symbol, KlineInterval.OneMinute, (e) =>
|
|
{
|
|
base.OnReceived(e.Data.Data.ClosePrice);
|
|
}, cancellationTokenSource.Token);
|
|
}
|
|
|
|
public override void Stop()
|
|
{
|
|
if (!IsConnected)
|
|
return;
|
|
IsConnected = false;
|
|
cancellationTokenSource.Cancel();
|
|
binanceSocketClient.SpotStreams.Dispose();
|
|
cancellationTokenSource = null;
|
|
}
|
|
}
|
|
}
|
|
|