Coinbase pro web socket 获取货币的当前价格

Coinbase pro web socket get the current price for a currency

你好,我正在尝试使用文档中的 coinbase api 获取比特币的实时价格,它说它不鼓励对价格数据进行轮询,所以我在想是否可以从他们那里获取它web socket feed 如果是这样的话,它是什么渠道和什么价值。我试过股票频道,但这不是我要找的

此代码有效,但我警告不要轮询

function get_price() {
  const callback = (error, response, data) => {
    if(error){
      console.log(error);
    }else{
      xPrice = data.price;
    }
  };
  authedClient.getProductTicker(a2, callback);
}

这是订阅网络套接字提要的代码

const websocket = new CoinbasePro.WebsocketClient(
  ["BTC-EUR"],
  "wss://ws-feed-public.sandbox.pro.coinbase.com",
  null,
  {
    channels: ['ticker']
  }
);

它正在工作,但是您同时收到 type='heartbeat' 和 type='ticker' 消息,并且它们是 异步 发送到您的回调函数。因此,在尝试 运行 处理代码的代码之前,您必须等待回调接收代码消息。

const websocket = new CoinbasePro.WebsocketClient(
  ["BTC-EUR"],
  "wss://ws-feed.pro.coinbase.com",
  null, // <-- you need to put your API key in
  {
    channels: ['ticker']
  }
);
websocket.on('message',data=>data.type==='ticker'&&xPrice=data.price&&console.log(data.price, data))
                             // (only want to see ticker messages)
                             // you will receive heartbeat (keep-alive) and ticker messages
                             // asynchronous callback will send data when it is available
                             // you must wait for data to be available and act on it