public async Task <WebSocketAdapter> connectClientAsync() { var client = new ClientWebSocket(); var adapter = new WebSocketAdapter(client); client.Options.KeepAliveInterval = new TimeSpan(0, 0, 5); await client.ConnectAsync(new Uri(URL), CancellationToken.None); return(adapter); }
public async Task connectSocketsAsync(HashSet <string> targetMarkets) { client = await connectClientAsync(); foreach (var ticker in targetMarkets) { var market = new Market(); market.symbol = ticker; market.exchange = "binance"; ProjectShortwave.binanceMarkets.TryAdd(ticker, market); var cts = new CancellationToken(); await client.SendAsync(new ArraySegment <byte>(Encoding.ASCII.GetBytes($"{{\"method\": \"SUBSCRIBE\",\"params\": [\"{ticker.ToLower()}@aggTrade\"], \"id\": {ID} }}")), WebSocketMessageType.Text, true, cts); await Task.Delay(500); //wait 500 ms for the connection to be established ID++; } listenAsync(); }