【问题标题】:websocket - decode arraybuffer wired characters - nodejswebsocket - 解码arraybuffer有线字符 - nodejs
【发布时间】:2021-12-17 16:57:50
【问题描述】:

我正在使用 ws 包从我的 nodejs 服务器连接到 websocket。

我正在尝试解码我​​收到的数据/数组缓冲区。但是当我尝试解码数据/数组缓冲区时,它会记录有线字符,并希望有人能告诉我为什么?

我正在使用TextDecoder 来解码arraybuffer

const ab2str = (buf) => {
  return new TextDecoder().decode(buf);
};

日志输出。

��G����Ԋ{��G�VC�B�

我的留言。

client.onmessage = (event) => {
  try {
    //console.log("message:", event.data); 
    console.log(ab2str(event.data));

  } catch (error) {
    console.log("onmessage error:", error.message);
  }
};

【问题讨论】:

    标签: node.js websocket arraybuffer ws


    【解决方案1】:

    您确定您的消息是二进制的吗? 如果没有,那么我使用的是纯message.toString() 方法并且没有任何问题:

    ws.on('message', (mes, isBinary) => {
       const m = isBinary ? mes : mes.toString();
       if (isBinary) {
           console.log('MESSAGE IS BINARY');
           // you have to deserialize it (e.g. bson)
       } else {
           console.log('RECEIVED MESSAGE: ', m)
    })
    

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 2014-07-21
      • 2016-12-31
      • 2016-09-30
      • 2012-03-05
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2013-02-09
      相关资源
      最近更新 更多