这是我的第一个 webRTC 项目,所以我在跟踪这类错误方面非常缺乏经验。特别是因为我使用的是这个NPM 包,所以我不知道如何处理这个错误消息。如果您点击该链接,我刚刚复制/粘贴了“使用”演示代码,但使用 Laravel echo 将其中一些替换为套接字以传输对等连接数据。在“使用”演示中,他们生成了一个“报价”对象,并让您将其粘贴到其他对等表单中。然后该客户端生成一个“答案”对象,当您将其粘贴到启动客户端的表单中时,就会建立连接。如果我这样做,一切正常。但是我正在尝试在所有客户端都准备好时建立自动连接。这是我的代码:
var Peer = require("simple-peer");
window.p = new Peer({
initiator: location.hash === "#1",
trickle: false
});
p.on("error", err => console.log("error", err));
p.on("signal", data => {
if (location.hash === "#1") {
$.ajax({
url: "/autoCon",
type: "get",
data: {
connectionData: JSON.stringify(data)
},
success: function() {
console.log("sent: " + JSON.stringify(data));
}
});
}
});
p.on("connect", () => {
console.log("CONNECT");
});
然后在刀片文件上,我用 Echo 像这样收听:
Echo.channel('myChannel')
.listen('MyEvent', (e) => {
p.signal(e.connectionData)
});
现在对于错误:
Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Failed to apply the description for 0: Failed to setup RTCP mux.
如果我控制台 log p.signal(e.connectionData)
,它显示“未定义”,这很奇怪,因为它正在生成“答案”对象并以文本形式显示到页面。所以我尝试做的是 ajax 将初始的“offer”对象发送到第二个对等点,然后在套接字接收到数据时获取它的“answer”对象并发出信号让发起对等点进行连接。但它给了我这个错误。任何人都可以帮忙吗?