问题描述
我正在创建一个视频聊天应用程序,但是当第二人称连接时,服务器返回一些奇怪的错误。请帮助我解决此错误。
当我打开新标签并粘贴相同的URL进行测试时,就会出现实际问题。
我正在使用“简单对等”:“ ^ 9.7.2”,
错误:对等方被破坏后无法发出信号
这也是屏幕截图
服务器代码
socket.on("returning-signal",(payload) => {
io.to(payload.callerID).emit("receiving-returned-signal",{
signal: payload.signal,id: socket.id,});
});
客户端
socketRef.current = io.connect("http://localhost:1234");
navigator.mediaDevices
.getUserMedia({ video: videoConstraints,audio: false })
.then((stream) => {
userVideo.current.srcObject = stream;
socketRef.current.emit("join-room",roomID);
socketRef.current.on("all-users",(users) => {
const peers = [];
users.forEach((userID) => {
const peer = createPeer(userID,socketRef.current.id,stream);
peersRef.current.push({
peerID: userID,peer,});
peers.push(peer);
});
setPeers(peers);
});
socketRef.current.on("user-joined",(payload) => {
const peer = addPeer(payload.signal,payload.callerID,stream);
peersRef.current.push({
peerID: payload.callerID,});
setPeers((users) => [...users,peer]);
});
socketRef.current.on("receiving-returned-signal",(payload) => {
const item = peersRef.current[0];
item.peer.signal(payload.signal);
});
});
function createPeer(userToSignal,callerID,stream) {
const peer = new Peer({
initiator: true,trickle: false,stream,});
peer.on("signal",(signal) => {
socketRef.current.emit("sending-signal",{
userToSignal,signal,});
});
return peer;
}
解决方法
找到解决方案
此版本"simple-peer": "^9.7.2"
中存在问题,我将版本更改为9.6.2
,它的工作方式就像魅力。 ✨?