Created
August 16, 2018 07:21
-
-
Save icehongssii/a42b87af530bed8974d9bf40df67f743 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const app = require('express')(); | |
const server = require('http').Server(app); | |
const request = require('request'); | |
const io = require('socket.io-client'); | |
server.listen(3005); | |
app.get('/', function (req, res, err) { | |
res.sendfile('/index.html'); | |
if (err) { | |
console.log(err) | |
} | |
}); | |
function getPairs(){ | |
return new Promise((resolve, reject)=>{ | |
request('https://api.bitflyer.jp/v1/markets', function(error, res, body){ | |
if (res.statusCode == 200 && !error){ | |
var result = JSON.parse(body) | |
var pairs = []; | |
var i; | |
for(i=0; i<result.length; i++){ | |
if (Object.keys(result[i]).length ==1 && !Object.values(result[i])[0].startsWith('FX')){ | |
pairs.push("lightning_ticker_"+Object.values(result[i])[0]) | |
} | |
} | |
} | |
resolve(pairs) | |
}); | |
}); | |
} | |
async function queryMaker(){ | |
var pairs = await getPairs() | |
const socket = io("https://io.lightstream.bitflyer.com", { transports: ["websocket"] }); | |
var i; | |
socket.on("connect", () => { | |
for(i=0; i<pairs.length; i++){ | |
console.log(pairs[i]); | |
socket.emit("subscribe", pairs[i]); | |
} | |
}); | |
for(i=0; i<pairs.length; i++){ | |
socket.on(pairs[i], message => { | |
var result = JSON.parse(JSON.stringify(message)); | |
var pair = result.product_code.replace("_",""); | |
var price = result.ltp; | |
console.log( { pair, price }); | |
socket.emit('price_data', { pair, price}); | |
}); | |
} | |
} | |
queryMaker() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment