"Как правильно отключить одноранговые узлы с помощью библиотеки simple-peer.js и прекратить потоковую передачу между этими одноранговыми узлами?" - PullRequest
0 голосов
/ 11 июня 2019

Я надеюсь, что вы будете в порядке,

Я новичок в webRTC, извините, если мой вопрос выглядит как нубский, но мне было интересно, есть ли какой-нибудь правильный способ закрыть соединение между пирами, особенно с использованием simple-peer.js, с нетерпением ожидая ваших удивительных ответов

вот мой пример кода реакции,

 if (navigator.getUserMedia) {
            navigator.getUserMedia({ audio: { echoCancellation: true }, video: true }, stream => {

                let peer = new Peer({
                    initiator: this.props.isInitiator,
                    stream
                });

                this.localStream.current.srcObject = stream;
                this.localStream.current.play();

                peer.on('signal', (data) => {
                    socket.emit('offer', { data: JSON.stringify(data), conversation_id: this.props.conversation_id })
                });

                socket.on('offer', (data) => {
                    peer.signal(JSON.parse(data))
                })

                socket.on('DESTROY-VIDEO-CALL-SESSION', () => {
                    stream.getTracks().forEach(track => track.stop());
                    peer.removeAllListeners();
                    peer.destroy();
                });

                peer.on('stream', (streamData) => {
                    this.remoteStream.current.srcObject = streamData;
                    this.remoteStream.current.play();
                });

                this.setState({
                    endCall: () => {
                        socket.emit('VIDEO-CALL-ENDED', this.props.conversation_id);
                    }
                })

            }, error => {
                alert('Please allow video and audio permission to make this call')
            });
}
...