将数据从websocket发送到前端 - Nodejs,Expressjs

时间:2018-01-11 01:46:59

标签: node.js express socket.io handlebars.js trading

我正在开发一个项目,该项目使用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搞混,但我不确定如何利用它。任何帮助将非常感激!如果您对密码感兴趣,请取悦您。我们正在组建一个不和谐的团队来分享我们的研究和交易策略。

2 个答案:

答案 0 :(得分:0)

要从后端启动数据发送过程(而不是前端请求数据),您应该使用websockets(如上所述,socketIO)。

要做到这一点,首先,您应该通过包装http / https服务器或Express应用程序在您的快速应用程序中启动socketio服务器。

然后,从前端开始,你应该发起一个socketio-client。

接下来,您的前端客户端应使用socketio-client的connect方法与服务器建立连接。它将使用套接字连接在服务器中触发事件。

最后,服务器可以使用该套接字连接,将任意数量的数据发送到客户端。 (您可能需要保存连接以供以后使用)。

答案 1 :(得分:0)

我试图做同样的事情,你在谈论什么不和谐的团体?