报错为
不知道该怎么解决,并且我使用websocket传帧过去还乱码
并且转二进制也有问题,打印出来是空的
var binary='';
var bytes=new Uint8Array(frame.data);
for(var len=bytes.byteLength,i=0;i<len;i++){
binary+=String.fromCharCode(bytes[i]);
}
报错为
var binary='';
var bytes=new Uint8Array(frame.data);
for(var len=bytes.byteLength,i=0;i<len;i++){
binary+=String.fromCharCode(bytes[i]);
}
让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题描述: 报错为 xxx,不知道该怎么解决,并且使用 Websocket 传帧过去还乱码,并且转二进制也有问题,打印出来是空的。 解决方案:
const encoder = new TextEncoder();
const text = 'hello';
const encodedText = encoder.encode(text);
const binary = Uint8Array.from(encodedText);
还可以使用 Buffer 对数据进行编码,例如:
const text = 'hello';
const buffer = Buffer.from(text, 'utf8');
const binary = new Uint8Array(buffer);
完整代码示例:
// 数据转二进制
const encoder = new TextEncoder();
const text = 'hello';
const encodedText = encoder.encode(text);
const binary = Uint8Array.from(encodedText);
console.log(binary);
// 数据编解码
const websocket = new WebSocket('ws://localhost:8080');
websocket.addEventListener('open', () => {
const encoder = new TextEncoder();
const text = 'hello';
const encodedText = encoder.encode(text);
const binary = Uint8Array.from(encodedText);
websocket.send(binary);
});
websocket.addEventListener('message', event => {
const decoder = new TextDecoder();
const data = new Uint8Array(event.data);
const decodedData = decoder.decode(data);
console.log(decodedData);
});
需要注意的是,在针对 Websocket 传输数据时,需要确保服务端和客户端传输数据的格式一致,才能正常解析数据。