2017-12-08 12 views
1

api.bitfinex.com/ws의 간단한 websocket API를 사용하여 BTC/USD 시장에서 스트림을 변경합니다. 나는 간단한 csv 파일을 업데이트하는 방법을 고민하고 있으므로 csv를 업데이트하기 위해 ws에서 새 데이터를받을 때가 있습니다. 나는 fast-csv를 사용하려고하지만 성공하지는 못합니다. 여기 내 노드 JS 코드 : 그래서노드 js와 함께 websocket 스트림에서 CSV 파일을 업데이트해야합니다.

const WebSocket = require('ws'); 
    const ws = new WebSocket("wss://api.bitfinex.com/ws"); 

    const fs = require('fs'); 

    ws.onopen = function(){ 
     ws.send(JSON.stringify({'event':'subscribe', 'channel':'ticker', 'pair':'btcusd'})) 
    }; 

    ws.onmessage = function(msg){ 

     var response = JSON.parse(msg.data); 
     if (response[1] !="hb"){ 
      console.log("Bitfin " + response[7]); 
      //HERE I need to update existing CSV file, 
      //for example 
      //BTC,xxxx 
      //ETH,xxxx 
      //two columns, and n rows.. 
     } 
    }; 

, 어떻게 CSV로 스트리밍하는 어떤 생각 (BTCUSD 행 1 열 2, ETH 행 2 열 2 등)

답변

0

가 보인다 너는 writeStream을 사용해야한다. 다음과 같은 것 :

const fs = require('fs') 
    let writeStream = fs.createWriteStream(fileName) 

    ws.onmessage = function(msg){ 
     //... your code ... 
     writeStream.write(msg) 
    } 

    writeStream.on('finish',() => { 
    console.log(`Finished writing!`) 
    })