Binance - 通过 WebSockets 获取所选代币的当前价格

Lin*_*ode 5 javascript binance

Binance 提供具有多种功能的 Web Socket Streams,例如聚合流、交易流、Kline/Candlestick Streams 等,您可以在此处查看https://github.com/binance/binance-spot-api-docs/blob/master/ web-socket-streams.md

我希望获得我选择的硬币的当前价格和过去 24 小时的百分比变化,但我不明白如何获得这些信息。价格必须是实时的,可以每 60 秒或其他时间调用 24 小时 % 的变化。

我目前正在使用 CoinCap https://docs.coincap.io/,这很简单:

  1. 为了获得 24h % 我调用端点 https://api.coincap.io/v2/assets?ids=bitcoin,ethereum
  2. 为了实时获取价格,我调用端点 wss://ws.coincap.io/prices?assets=bitcoin,ethereum

CoinCap 的问题是我无法用我想要的交易所过滤价格,在这种情况下是 Binance。所以我不断得到与币安不匹配的价格。

var socket = new WebSocket('wss://ws.coincap.io/prices?assets=bitcoin,ethereum');
socket.addEventListener('message', function (event)
{
  // parse & show the data
});
Run Code Online (Sandbox Code Playgroud)

例如,Kline/Candlestick Streams 说明如下:

Kline/Candlestick Stream 每秒推送更新到当前的 klines/烛台

并返回以下数据:

{
  "e": "kline",     // Event type
  "E": 123456789,   // Event time
  "s": "BNBBTC",    // Symbol
  "k": {
    "t": 123400000, // Kline start time
    "T": 123460000, // Kline close time
    "s": "BNBBTC",  // Symbol
    "i": "1m",      // Interval
    "f": 100,       // First trade ID
    "L": 200,       // Last trade ID
    "o": "0.0010",  // Open price
    "c": "0.0020",  // Close price
    "h": "0.0025",  // High price
    "l": "0.0015",  // Low price
    "v": "1000",    // Base asset volume
    "n": 100,       // Number of trades
    "x": false,     // Is this kline closed?
    "q": "1.0000",  // Quote asset volume
    "V": "500",     // Taker buy base asset volume
    "Q": "0.500",   // Taker buy quote asset volume
    "B": "123456"   // Ignore
  }
}
Run Code Online (Sandbox Code Playgroud)

基于此,与币安平台https://www.binance.com/en/markets 中看到的价值相匹配的当前价格是多少?

Mik*_*lyi 7

您可以使用迷你Ticker。https://binance-docs.github.io/apidocs/spot/en/#individual-symbol-mini-ticker-stream。最后价格为c,24 小时前价格为o