使用node.js和“了解基本websocket API”;ws"-包装(API:bitfinex)
我正在尝试使用node.js、“ws”包(它似乎是npmjs.com上非常流行的websocket包)和bitfinex.com(一种加密货币交换)websocketapi来实现基本的websocket通信。 我想阅读某一货币对的公开代码,文档如下: 到目前为止,我的结果是有效的,但仍然与我根据文件应该得到的结果有很大不同 我使用的代码片段取自上面链接的文档:使用node.js和“了解基本websocket API”;ws"-包装(API:bitfinex),node.js,api,websocket,bitcoin,Node.js,Api,Websocket,Bitcoin,我正在尝试使用node.js、“ws”包(它似乎是npmjs.com上非常流行的websocket包)和bitfinex.com(一种加密货币交换)websocketapi来实现基本的websocket通信。 我想阅读某一货币对的公开代码,文档如下: 到目前为止,我的结果是有效的,但仍然与我根据文件应该得到的结果有很大不同 我使用的代码片段取自上面链接的文档: const ws = require('ws') const w = new ws('wss://api.bitfinex.com/ws
const ws = require('ws')
const w = new ws('wss://api.bitfinex.com/ws/2')
w.on('message', (msg) => {
console.log(msg)
})
let msg = JSON.stringify({
event: 'subscribe',
channel: 'ticker',
symbol: 'tBTCUSD'
})
w.on('open', () => {
w.send(msg)
})
到目前为止,它通过从订阅的频道向控制台输出消息来工作:
[1[14873,23.4946446514874,61.090312631087,0.07891487256895.2049708550013891]
但现在,问题是,在文档中,响应看起来不同。我如何确定哪个数字是什么?我应该能从回复中得到更多的信息,不是吗?
给定的示例响应如下所示:
// response - trading
{
event: "subscribed",
channel: "ticker",
chanId: CHANNEL_ID,
pair: "BTCUSD"
}
这和我得到的数字数组有什么关系?例如,我将如何读取“pair:”字段(“BTCUSD”)或任何其他列出的字段,如(投标、投标期、数量、高、低等)?我错过了什么明显的东西吗
我知道这是一个很大的问题,但也许有人知道一个或两个好的例子或提示来启发我。提前谢谢
亲切问候,,
s中描述了此API的总体websocket方案。如果您还没有阅读该页面,现在是阅读该页面的好时机 对于您的示例程序,您应该在websocket的前两条消息中看到info和subscribed事件信息应在websocket连接建立后立即发送,而订阅的应在响应您的订阅请求时发送 在此之后,您应该会看到您订阅的频道的股票行情快照消息,随后是定期的股票行情更新消息。这些是您看到的JSON数组。公共股票行情频道的这些消息的格式如所述--单击深绿色“详细信息”栏中的快照和更新标题以查看定义。在这种情况下,快照和更新使用相同的格式:
[ CHANNEL_ID,
[ FRR, BID, BID_PERIOD, BID_SIZE, ASK, ASK_PERIOD, ASK_SIZE,
DAILY_CHANGE, DAILY_CHANGE_PERC, LAST_PRICE, VOLUME, HIGH, LOW
]
]
其含义如上述URL的“流字段”表所述。
您可以将这些消息解析为JSON字符串,并像访问任何数组一样访问字段值
有点奇怪的是,API将它们作为数组而不是带有命名属性的对象发送。我想他们希望保持这些消息的紧凑性,因为它们构成了大部分流量