我最近尝试使用 Webrtc 实现 p2p 文件传输,方法是将大文件拆分为数组缓冲区,然后通过数据通道发送它们。该代码在一个月前可以工作,但现在它突然向我抛出了这个错误。
Uncaught RTCError: Failure to send data
Uncaught Error: The error you provided does not contain a stack trace.
这是发送文件的代码片段。
function sendFile() {
const peer = peerRef.current;
const stream = file.stream();
const reader = stream.getReader();
reader.read().then(obj => {
handlereading(obj.done, obj.value);
});
function handlereading(done, value) {
if (done) {
console.log("done");
peer.write(JSON.stringify({ done: true, fileName: file.name }));
return;
}
peer.write(value);
reader.read().then(obj => {
handlereading(obj.done, obj.value);
console.log("yolo");
})
}
}
该代码在其他浏览器(如 firefox 或移动三星浏览器)上运行良好。