2017-12-31 144 views
0

Ich benutze Websockets in Javascript, um eine Verbindung zu einer API herzustellen und einige Daten zu lesen. Hierwebsockets Unterschied zwischen ws.on und ws.onmessage

ist der Code:

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); 
 
    } 
 
    }

In diesem Fall habe ich einen Fehler:

..../node_modules/pako/lib/inflate.js: 384 if (inflator.err) {inflator.msg || werfen msg [Luftpumpe.err]; }^ unbekannte Komprimierungsverfahren

Wenn I "wss.onmessage = (Daten) =>" zu "wss.on ('Nachricht', (Daten) => {" entfernen und die Änderung extra ')' der Code funktioniert einwandfrei.

Was ist der Unterschied zwischen wss.on und wss.onmessage?

Neuling zu diesem einen so schätzen jede Führung. Entschuldigung im Voraus, wenn dies ein dummer ist ....

Antwort

0

Die Bibliothek WS ist ein Wrapper für die WebSocket API so "onmessage" wird hier nicht funktionieren.