/// <summary> /// Zaif Streaming APIを呼び出します。 /// </summary> /// <param name="cp">パラメーター。</param> /// <param name="callback">コールバック。</param> /// <returns>レスポンスとして返されるJSON形式の文字列。</returns> public async Task StartStream(CurrencyPairsEnum cp, Action <StreamingData> callback, CancellationToken token) { double nonce = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; if (Client.State != WebSocketState.Open) { await Client.ConnectAsync(new Uri(path + cp.ToString()), token).ConfigureAwait(false); var tmpStr = ""; while (Client.State == WebSocketState.Open) { var buff = new ArraySegment <byte>(new byte[MessageBufferSize]); var ret = await Client.ReceiveAsync(buff, token).ConfigureAwait(false); tmpStr += (new UTF8Encoding()).GetString(buff.Take(ret.Count).ToArray()); var index = tmpStr.IndexOf("}{"); if (index >= 0) { var json = tmpStr.Substring(0, index + 1); tmpStr = tmpStr.Remove(0, index + 1); var result = JsonConvert.DeserializeObject <StreamingData>(json); callback(result); } } } }
public async Task <Depth> Depth(CurrencyPairsEnum cp) { var json = await SendGetAsync("/depth/" + cp.ToString()).ConfigureAwait(false); var result = JsonConvert.DeserializeObject <Depth>(json); return(result); }
public async Task <IEnumerable <PublicTrade> > Trades(CurrencyPairsEnum cp) { var json = await SendGetAsync("/trades/" + cp.ToString()).ConfigureAwait(false); var result = JsonConvert.DeserializeObject <IEnumerable <PublicTrade> >(json); return(result); }
public async Task <LastPrice> LastPrice(CurrencyPairsEnum cp) { var json = await SendGetAsync("/last_price/" + cp.ToString()).ConfigureAwait(false); var result = JsonConvert.DeserializeObject <LastPrice>(json); return(result); }
public async Task <Ticker> Ticker(string groupId, CurrencyPairsEnum cp) { string endpoint = "/ticker/" + groupId + "/" + cp.ToString(); var json = await SendGetAsync(endpoint).ConfigureAwait(false); var result = JsonConvert.DeserializeObject <Ticker>(json); return(result); }
public async Task <IEnumerable <PublicTrade> > Trades(string groupId, CurrencyPairsEnum cp) { string endpoint = "/trades/" + groupId + "/" + cp.ToString(); var json = await SendGetAsync(endpoint).ConfigureAwait(false); var result = JsonConvert.DeserializeObject <IEnumerable <PublicTrade> >(json); return(result); }
public async Task <LastPrice> LastPrice(string groupId = "all", CurrencyPairsEnum cp = CurrencyPairsEnum.None) { string endpoint; if (cp == CurrencyPairsEnum.None) { endpoint = "/last_price/" + groupId; } else { endpoint = "/last_price/" + groupId + "/" + cp.ToString(); } var json = await SendGetAsync(endpoint).ConfigureAwait(false); var result = JsonConvert.DeserializeObject <LastPrice>(json); return(result); }