huobi websocket blob 데이터 처리방법
function go_huobi()
{
//https://huobiapi.github.io/docs/spot/v1/en/#trade-detail
//https://alphaex-api.github.io/openapi/spot/v1/kr/#d65fcb4e6b
var socket = new WebSocket("wss://api.huobi.pro/ws");
socket.binaryType = 'arraybuffer';
socket.onopen = function(){
var date = new Date();
var microtime = date.getTime();
setInterval(function(){
//console.log('huobi ping');
socket.send('{"op":"ping", "ts":'+microtime+'}');
}, 10000);
//socket.send('{"action": "sub", "ch": "trade.clearing#btcusdt"}');
socket.send('{"sub": "market.btcusdt.trade.detail","id": "id1"}');
//socket.send('{"req": "market.btcusdt.kline.1min","id": "id1"}');
};
socket.onmessage = function(evt){
//console.log(evt.data);
var binData = new Uint8Array(evt.data);
var data = pako.inflate(binData);
var strData = String.fromCharCode.apply(null, new Uint16Array(data));
var sdata = JSON.parse(strData);
//console.log(sdata);
if(sdata['ch'] == "market.btcusdt.trade.detail")
{
//console.log(sdata['tick']['data'][0]);
var data = sdata['tick']['data'][0];
/*
amount: 0.002792
direction: "sell"
id:
1.0804716280824435
e+25
price: 9524.38
tradeId: 102138131278
ts: 1590859752359
*/
}
};
socket.onclose = function(event){
console.log("WebSocket close observed:", event);
};
socket.onerror = function(event) {
console.log("WebSocket error observed:", event);
};
}