我正在开发一个项目,该项目使用binance api创建一个界面,使日间交易密码更容易。
对他们的api的调用如下:
binance.websockets.candlesticks(['BNBBTC'], "1m", function(candlesticks) {
let { e:eventType, E:eventTime, s:symbol, k:ticks } = candlesticks;
let { o:open, h:high, l:low, c:close, v:volume, n:trades, i:interval, x:isFinal, q:quoteVolume, V:buyVolume, Q:quoteBuyVolume } = ticks;
console.log(symbol+" "+interval+" candlestick update");
console.log("open: "+open);
console.log("high: "+high);
console.log("low: "+low);
console.log("close: "+close);
console.log("volume: "+volume);
console.log("isFinal: "+isFinal);
});
它似乎是以固定的间隔返回数据,因此我对它是否实际实时持怀疑态度,但无论如何,我想知道如何将数据发送到前端。
目前,我正在使用静态数据执行此操作:
router.get('/interface', function(req,res) {
binance.candlesticks("BNBBTC", "5m", function(ticks, symbol) {
console.log("candlesticks()", ticks);
let last_tick = ticks[ticks.length - 1];
let [time, open, high, low, close, volume, closeTime, assetVolume, trades, buyBaseVolume, buyAssetVolume, ignored] = last_tick;
console.log(symbol+" last close: "+close);
res.render('interface', {ticks:ticks});
});
});
我过去曾与socket.io搞混,但我不确定如何利用它。任何帮助将非常感激!如果您对密码感兴趣,请取悦您。我们正在组建一个不和谐的团队来分享我们的研究和交易策略。
答案 0 :(得分:0)
要从后端启动数据发送过程(而不是前端请求数据),您应该使用websockets(如上所述,socketIO)。
要做到这一点,首先,您应该通过包装http / https服务器或Express应用程序在您的快速应用程序中启动socketio服务器。
然后,从前端开始,你应该发起一个socketio-client。
接下来,您的前端客户端应使用socketio-client的connect方法与服务器建立连接。它将使用套接字连接在服务器中触发事件。
最后,服务器可以使用该套接字连接,将任意数量的数据发送到客户端。 (您可能需要保存连接以供以后使用)。
答案 1 :(得分:0)