Правильное закрытие соединения webRT C в ReactJS - PullRequest
0 голосов
/ 24 марта 2020

У меня есть ситуация, когда есть постоянный хост веб-камеры / аудиопотока, и люди могут подключиться к нему и уйти, когда они sh. Только один человек может одновременно подключиться, что обрабатывается с помощью socket.io logi c. У меня возникают проблемы с корректным закрытием соединения на стороне хоста после того, как один пользователь уходит, и настройкой его с новым RTCpeerconnection для следующего пользователя.

По какой-то причине прослушиватель onicecoonnectionstatechange срабатывает после первого пользователь отключается и работает нормально. Это не делает ничего с последующими пользователями, хотя. Любые идеи? Спасибо!

   componentDidMount() {
        ...

        peerconnection1.oniceconnectionstatechange = () => {
            // console.log(peerconnection1.iceConnectionState);
            if(peerconnection1.iceConnectionState == 'disconnected') {
                console.log('Disconnected');

                peerconnection1.close();
                peerconnection1 = null;
                this.setState({isAlreadyCalling: false});
                peerconnection1 = new RTCPeerConnection(servers);

                navigator.getUserMedia(
                    { video: true, audio: true },
                    stream => {
                    const localVideo = document.getElementById("local-video");
                    if (localVideo) {
                        localVideo.srcObject = stream;
                    }
                    stream.getTracks().forEach(track => peerconnection1.addTrack(track, stream));
                    },
                    error => {
                    console.warn(error.message);
                    }
                );
            }
        }
    }
...