javascript - websockets ws.on 和 ws.onmessage 之间的区别

标签 javascript node.js websocket

我正在 javascript 中使用 websockets 连接到 API 并读取一些数据。

这是代码:

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) { 抛出 inflator.msg ||消息[充气机.错误]; } ^ 未知的压缩方式

如果我将 "wss.onmessage = (data) =>" 更改为 "wss.on ('message', (data) => {" 并删除额外的“)”代码完美运行。

wss.on 和 wss.onmessage 之间有什么区别?

新手,非常感谢任何指导。如果这是一个愚蠢的事情,请提前道歉......

最佳答案

图书馆WSWebSocket API 的包装器所以“onmessage”在这里不起作用。

关于javascript - websockets ws.on 和 ws.onmessage 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044294/

相关文章:

javascript - 如何防止用户多次点击链接图片?

javascript - jsp中如何获取表中被点击的行

javascript - 与其他用户共享 IndexedDB 存储

node.js - 如何使用 sequelize 执行此特定 sql 左连接?

javascript - 在 Bluebird 中处理多个嵌套异步操作(promises)

javascript - d3js 图表更新由 websocket 消息触发

javascript - 检查数组中的任何对象是否包含另一个数组中列出的属性

javascript - 无需 http 即可访问本地应用程序的 API(1 Heroku dyno 内)

ruby-on-rails - 为此我应该使用什么 WebSockets 系统?

ios - Swift Starscream websocket pod未连接到本地服务器并且没有调用委托(delegate)方法