public async void StartLoadingData() { ws = new ClientWebSocket(); await ws.ConnectAsync(new Uri("wss://api.bitkub.com/websocket-api/" + key), CancellationToken.None); _timer.Start(); ArraySegment <Byte> readbuffer = new ArraySegment <byte>(new Byte[8192]); while (ws.State == WebSocketState.Open) { try { var result = await ws.ReceiveAsync(readbuffer, CancellationToken.None); var str = Encoding.Default.GetString(readbuffer.Array, readbuffer.Offset, result.Count); SocketCrypto updateValue = JsonConvert.DeserializeObject <SocketCrypto>(str); if (updateValue != null) { SocketCryptoData?.Invoke(this, updateValue); } } catch (TaskCanceledException) { System.Diagnostics.Debug.Write("WebSocket Stopped"); } } }
public ItemDetailViewModel(CryptoInfo item) { Title = item?.name; SocketCrypto = new SocketCrypto { stream = item.name, id = item.id, last = item.last, lowestAsk = item.lowestAsk, highestBid = item.highestBid, percentChange = item.percentChange, baseVolume = item.baseVolume, quoteVolume = item.quoteVolume, isFrozen = item.isFrozen, high24hr = item.high24hr, low24hr = item.low24hr }; StartLoadingData("market.ticker." + item.key.ToLower()); }