为什么我的简单对等应用程序无法在服务器上运行

问题描述

我在我的服务器端构建了reactjs,并在'/ *'上获取请求时即时呈现它。

我的问题是,当我在本地主机中拨打电话时,它可以工作,但是当我得到一个项目版本时, 有时在服务器上运行它,有时我的流呼叫视频无法到达接收者 它可以在wifi上的另一台笔记本电脑上使用,但不能在带有wifi或蜂窝数据的手机上使用。

这可能是关于像这样提供React应用还是这是关于我的代码的问题

我还从numb.viagenie.ca添加了眩晕/转身服务器,但仍然相同

我该如何解决

这是用户拨打电话时的代码部分:

var peer = new Peer({
    initiator:true,trickle:true,iceTransportPolicy: 'relay',stream:uStream,offerConstraints: { 
        offerToReceiveAudio: true,offerToReceiveVideo: true 
    },config: {
        iceServers: [
            {
                urls: "stun:numb.viagenie.ca",},{
                urls: "turn:numb.viagenie.ca",username: "username",credential: "password"
            }
        ]
    }
});
peer.on('signal',signal => {
    console.log('Call Signal',signal);
    socket.emit('call',{ signal,receiver_id: user.id,room_id:roomID,caller_username:username });
});

这是用户接听电话时的代码部分:

var peer = new Peer({
    initiator:false,answerConstraints: { 
        offerToReceiveAudio: false,offerToReceiveVideo: false 
    }
});
peer.on('signal',signal => {
    console.log('Answer Signal',signal);
    socket.emit('answer',receiver_username:username,caller_username:incomingCall.caller_username });
});
peer.signal(incomingCall.signal);

谢谢。

解决方法

我通过用coturn创建自己的TURN / STUN服务器解决了我的问题。我想其他服务器有问题。