boppleton / corn.lol

bitcoin big trades and liquidations ticker
https://corn.lol
MIT License
17 stars 10 forks source link

OKEX future support #60

Open secwang opened 4 years ago

secwang commented 4 years ago

Okex future support please. Thanks for you hard work for this handy tool.

secwang commented 4 years ago

` okexWebSocketClient(c) {

        console.log("okex start")

        var socket

        const socketMessageListener = (event) => {
            if (okexEnabled) {
                // let trade = JSON.parse(event)
                // console.log(event)
                // console.log(event.data)

                var json
                var data = event.data

                try {
                    if (data instanceof String) {
                        json = JSON.parse(data);
                        cosole.log("json",json);
                    } else { json = JSON.parse(pako.inflateRaw(data, { to: 'string' }));
                        // console.log("json",json);
                    }
                } catch (error) {
                    console.log(error)
                }

                // var msg = pako.inflate(event.data)
                //
                // console.log("msg: " + msg)
                // debugger;;

                // console.log("okex trade " + JSON.stringify(event))

                var tradeRaw = json.data[0]
                let trade = Start.okexTrade(tradeRaw)
                // console.log(trade[0],okexMinMarket)
                console.log(trade[0])

                if(trade[0].size >= okexMinMarket){
                    trades = trade.concat(trades)
                }

            }
        }

        const socketOpenListener = (event) => {
            console.log('okex open')
            socket.send("{\"op\": \"subscribe\", \"args\": [\"futures\/trade:BTC-USD-190816\"]}")
        }

        const socketCloseListener = (event) => {
            if (socket) {
                console.error('okex close')
            }
            socket = new WebSocket('wss://okexcomreal.bafang.com:8443/ws/v3?compress=true')
            socket.binaryType = 'arraybuffer'
            socket.addEventListener('open', socketOpenListener)
            socket.addEventListener('message', socketMessageListener)
            socket.addEventListener('close', socketCloseListener)
        }
        socketCloseListener()
    }

    static okexTrade(tradeRaw) {
        let trade = []
        trade.push({
            symbol: "BTCUSD",
            price: tradeRaw['price'],
            size: Math.abs(parseInt(tradeRaw['qty'] * 10)),
            timestamp: tradeRaw['timestamp'],
            side: tradeRaw['side'] == 'buy',
            exchangeName: "okex",
            startTime: Date.now(),
            btcAmt: Math.abs(parseInt(tradeRaw['qty'] * 10)) / tradeRaw['price'],
            firstPrice: tradeRaw['price'],
            lastPrice: tradeRaw['price']
        })
        return trade
    }

`