Пример #1
0
        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);
        }
Пример #2
0
        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();
        }