为什么接收端将 ArrayBuffer 类型解析为 Object?
来源:14-3 【练手的机会来了】文件实时传输

GavinXu89
2021-03-27
在 git 代码基础上做修改,在传输数据中新增字段 type,并转换为 JSON 格式:
// 发送端
dc.send(JSON.stringify({type: 'file', data: e.target.result})); // 发送文件
// 接收端
function receivemsg(event){
var msg = JSON.parse(event.data);
...
if ((msg!=null) && (msg.type==='file')) {
console.log(`Received Message ${msg.data.byteLength}`);
receivedSize += msg.data.byteLength;
...
}
但测试表明,接收端将 ArrayBuffer 类型的 msg.data(对应发送端的 e.target.result)解析为类型 Object:
解析错误,导致后续程序运行异常。
写回答
1回答
-
李超
2021-03-27
看看是不是命令参数没匹配上?
122021-07-02
相似问题