2017-12-31 261 views
0

JavaScriptにWebソケットを使用してAPIに接続し、一部のデータを読み取っています。この場合ws.onとws.onmessageのウェブソケットの相違

function processHUOBIAPI(client,exchange_name,exchange_wss,exchange_symbol) 
 
{ 
 
    // Define constants 
 
    const WebSocket = require('ws'); 
 
    const pako = require('pako'); 
 

 
    // Open connection once one is established 
 
    var wss = new WebSocket(exchange_wss); 
 

 
    wss.onopen =() => 
 
    { 
 
    // Send request to subscribe 
 
    var symbol = exchange_symbol.toLowerCase() 
 
    wss.send(JSON.stringify(
 
     { 
 
     "sub": "market." + symbol + ".kline.1min", 
 
     "id": symbol 
 
     } 
 
    )); 
 
    }; 
 

 
    // Parse channel information and send to Redis 
 
    wss.onmessage = (data) => 
 
    { 
 
    //typedef data; 
 
    console.log("Receive message", data); 
 
    let text = pako.inflate(data, { 
 
     to: 'string' 
 
    }); 
 
    mssg = JSON.parse(text); 
 
    if (mssg.ping) { 
 
     wss.send(JSON.stringify({ 
 
      pong: mssg.ping 
 
     })); 
 
    } else if (mssg.tick) { 
 
     console.log(mssg); 
 
     //handle(msg); 
 
    } else { 
 
     console.log(text); 
 
    } 
 
    }

私はエラーを取得する:

.../node_modules/PAKO/libに/ inflate.js:ここ

コードです384 if(inflator.err){throw inflator.msg || msg [inflator.err]; } ^未知の圧縮方法

Iは "wss.onmessage =(データ)=>"を "wss.on( 'メッセージ'、(データ)=> {" を変更し、削除した場合余分な ')'コードは完全に動作します。

wss.onとwss.onmessageの違いは何ですか?

これまでの初心者の方は、どんな指導もありがとうございます。もしこれが愚かなものであれば、事前にお詫び申し上げます。

答えて

0

ライブラリWSWebSocket APIのラッパーですので、ここでは "onmessage"は動作しません。