Hbdm와 OK는 웹소켓을 동시에 사용했고, 후비는 을 보내서 반응하지 않았습니다.

저자:광티안시아, 2019-03-21 00:35:45, 업데이트: 2019-03-21 11:26:42

이 코드는 다음과 같습니다. 후오비는 5~6초 후에 서버의 핑을 수신합니다. 그리고 저는 핑을 보내죠. 하지만 서버가 핑을 수신하지 않는 것처럼 보입니다. 그리고 계속 핑을 보내고 있습니다.

function main() {
    var ws_hbdm = Dial("wss://www.hbdm.com/ws?compress=true|compress=gzip&mode=recv")
    var ws_ok= Dial("wss://real.okex.com:10440/ws/v1?compress=true|compress=gzip_raw&mode=recv")
    var pingCyc = 1000 * 120
    var lastPingTime = new Date().getTime()
    if(ws_hbdm && ws_ok){
        ws_hbdm.write('{"sub": "market.EOS_CW.depth.step6","id": "id2"}')
        ws_ok.write("{'event':'addChannel','channel':'ok_sub_futureusd_eos_depth_this_week_5'}")
        while(1){
            //读取huobi数据
            var ret = ws_hbdm.read(-1)
            if(ret){
                var ret1=JSON.parse(ret)
                if("tick" in ret1){
                    Log("huobi",ret1.tick) 
                }else if("ping" in ret1){
                    ws_hbdm.write('{"pong":'+parseInt(ret1.ping)+'}')
                    Log("pong")
                }    
            }
            //读取ok数据
            var nowTime = new Date().getTime()
            var ret2 = ws_ok.read(-1)
            if(ret2){
                if(nowTime - lastPingTime > pingCyc){
                    ws_ok.write("{'event':'ping'}")
                    lastPingTime = nowTime
                }
                var ret3=JSON.parse(ret2)
                if(ret3.length>0){
                    if("data" in ret3[0]){
                        Log("ok",ret3[0].data)
                    }
                }
            }
        }
        //ws_hbdm.close() 
    }
}

이 로그는 다음과 같습니다. 2019-03-21 00:30:25 정보 ok {asks:[[3.687,18]]. 2019-03-21 00:30:24 정보 ok {asks: [[3.687,1684]]. 2019-03-21 00:30:24 정보 펑크 2019-03-21 00:30:23 정보 ok {asks:[[3.687,1684]]. 2019-03-21 00:30:23 정보 ok {asks:[[3.687,1711,4640]].

코인 APIhttps://github.com/huobiapi/API_Docs/wiki/WS_request


더 많은

초목서버 위치가 원인인지 확인하고, 또한 호스트를 업데이트하세요.

초목/upload/asset/292ead2ae2ccd91659e.jpg 코드를 복사해봤는데 문제없어

초목일부 거래소 서버는 핑 확인 링크를 주기적으로 전송합니다.

초목, 당신은 너무 늙어서, 우리는 모든 패턴을 나중에 추가합니다.

광티안시아감사합니다. 관리자를 업데이트했습니다. 좋습니다.

광티안시아예를 들어, 코드는 OK와 토큰의 시장 데이터를 동시에 얻고 싶었습니다. OK는 시장 데이터를 계속받을 수 있지만 토큰이 5초가 지나면 수신되지 않습니다. (나는 또한 핑에 응답했습니다.) 그래서 코드를 확인하고 이유를 찾으려면 도움을 요청했습니다.

초목그리고 저는 이 문제를 해결하기 위해 노력했습니다.

광티안시아네, 나는 Ping의 검사를 받았고, 바로 ping에 답했습니다. xxx.read ((() 이렇게 읽은 후에 다시 pong을 반환하는 것이 좋습니다. xxx.read ((-1)) 이렇게하면 불가능합니다. 이유를 모르겠습니다.