首页 > 解决方案 > Binance - 通过 WebSockets 获取所选硬币的当前价格

问题描述

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

我正在寻找我选择的硬币的当前价格和最近 24 小时 % 的变化,但我不明白如何获得这些信息。价格必须是实时的,24h % 的变化可以每 60 秒调用一次。

我目前正在使用 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
});

例如,Kline/Candlestick Streams 表示以下内容:

Kline/Candlestick Stream 每秒将更新推送到当前 klines/candlestick

并返回以下数据:

{
  "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
  }
}

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

标签: javascriptbinance

解决方案


您可以使用 miniTicker。https://binance-docs.github.io/apidocs/spot/en/#individual-symbol-mini-ticker-stream。最后的价格是c24 小时前的价格o


推荐阅读