解码数组缓冲区有线字符-nodejs



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

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

我正在使用TextDecoder来解码arraybuffer

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

日志输出。

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

我的onmessage。

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

您确定您的消息是二进制的吗?如果没有,那么我使用的是纯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)
})

最新更新