Javascript SimpleWebRTC对等发现无法正常工作

Javascript SimpleWebRTC对等发现无法正常工作,javascript,webrtc,simplewebrtc,Javascript,Webrtc,Simplewebrtc,我使用的是在此处找到的SimpleWebRTC库: 我让信号主机运行,正确配置了眩晕/转弯。它能够检测到其他同龄人,所以我认为晕眩/转身功能正常。我的问题是,当一个节点启动本地视频时,其他节点不会发现它,除非他们重新加载页面。我需要它,这样它就可以自动推送到其他同级,而无需重新加载页面。我认为这与下面的代码有关(我从示例中获取),但我不确定 我之所以将autoRequestMedia设置为false,是因为我希望用户能够在不打开自己设备的情况下查看其他对等方的摄像头(这也是为什么我在readyT

我使用的是在此处找到的SimpleWebRTC库:

我让信号主机运行,正确配置了眩晕/转弯。它能够检测到其他同龄人,所以我认为晕眩/转身功能正常。我的问题是,当一个节点启动本地视频时,其他节点不会发现它,除非他们重新加载页面。我需要它,这样它就可以自动推送到其他同级,而无需重新加载页面。我认为这与下面的代码有关(我从示例中获取),但我不确定

我之所以将autoRequestMedia设置为false,是因为我希望用户能够在不打开自己设备的情况下查看其他对等方的摄像头(这也是为什么我在readyToCall事件中没有webrtc.joinRoom)

目前,用户点击一个按钮,它将触发StartOcalVideo();视频是在元素中创建的。问题是,除非其他对等方重新加载页面,否则不会将任何内容推送到其他对等方。希望这能解释一切,如果你需要更多的细节,请告诉我

var webrtc = new SimpleWebRTC({
// the id/element dom element that will hold "our" video
localVideoEl: 'localCam',
// the id/element dom element that will hold remote videos
remoteVideosEl: '',
// immediately ask for camera access
autoRequestMedia: false,
autoRemoveVideos: true,
url: 'MY SIGNAL-MASTER URL HERE',
localVideo: {
autoplay: true, // automatically play the video stream on the page
mirror: false, // flip the local video to mirror mode (for UX)
muted: true // mute local video stream to prevent echo
}
});

webrtc.joinRoom('testchannel');

// a peer video has been added
webrtc.on('videoAdded', function (video, peer) {
    console.log('video added', peer);
    var remotes = document.getElementById('remoteCams');
    if (remotes) {
        var container = document.createElement('div');
        container.className = 'videoContainer';
        container.id = 'container_' + webrtc.getDomId(peer);
        container.appendChild(video);
        // suppress contextmenu
        // video.oncontextmenu = function () { return false; };
        remotes.appendChild(container);
    }
});

// a peer video was removed
webrtc.on('videoRemoved', function (video, peer) {
    console.log('video removed ', peer.nick);
    var remotes = document.getElementById('remoteCams');
    var el = document.getElementById(peer ? 'container_' + webrtc.getDomId(peer) : 'localScreenContainer');
    if (remotes && el) {
        remotes.removeChild(el);
    }
});

您必须将join语句放入readyToCall侦听器:

webrtc.on('readyToCall', function() {
     webrtc.joinRoom('roomname');
})

将joinRoom调用放入setTimout函数