为什么接收端将 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

看看是不是命令参数没匹配上?

1
2
Lclone
回复
GavinXu89
我也遇到了,你问题解决了吗?
2021-07-02
共2条回复

5G时代必备音视频WebRTC实时互动直播技术入门与实战

低门槛掌握WebRTC技术,高效率快速构建一套音视频实时互动系统

2541 学习 · 728 问题

查看课程