예제 #1
0
        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());
 }