У меня есть ситуация, когда есть постоянный хост веб-камеры / аудиопотока, и люди могут подключиться к нему и уйти, когда они 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);
}
);
}
}
}