我正在使用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)
})