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

Posted

技术标签:

【中文标题】Coinbase pro web socket 获取货币的当前价格【英文标题】:Coinbase pro web socket get the current price for a currency 【发布时间】:2020-09-29 19:41:09 【问题描述】:

嗨,我正在尝试使用文档中的 coinbase api 获取比特币的实时价格,它说它不鼓励对价格数据进行轮询,所以我在徘徊,如果可以从他们的网络套接字提要中获取它,如果可以的话渠道以及它的价值是什么。我已经尝试过股票频道,但这不是我想要的

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

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

这里是订阅 web socket feed 的代码

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

【问题讨论】:

【参考方案1】:

它正在工作,但您会同时收到 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

【讨论】:

没有帮助,这是我收到的相同数据 您收到的哪些数据不是您所期望的?我可以使用它在我的控制台中检索并查看 BTC-EUR 的当前价格 哦..这可能是因为正如他们在文档中所说,他们批量更新并选择何时发送更新 在该页面上打开开发者控制台,并检查网络选项卡,看看您是否可以查看他们使用的某种特殊 API 是否不同。我没有 coinbase 专业账户,所以无法查看 您需要使用的 URL 是:wss://ws-feed.pro.coinbase.com 和您的 API 密钥。沙盒不适合他们的交易者,所以他们可能不会及时更新

以上是关于Coinbase pro web socket 获取货币的当前价格的主要内容,如果未能解决你的问题,请参考以下文章

如何使用NodeJS coinbase pro api从主体密钥获取价格

Python Coinbase Pro API 如何计算限价单的执行价值?

coinbase pro API - 我可以更新未平仓限价单吗?

调用 Coinbase pro 沙盒 api 时,无效:401 Unauthorized。文本:""message":"invalid signature&qu

Coinbase定义元宇宙:互联网的未来,Web3终将演变将成为元宇宙

如何在Node.js中从简单的HTTPS请求构造和提取值?