Я узнаю о webrt c, используя кодовую метку здесь: https://webrtc.org/getting-started/firebase-rtc-codelab
Я добавил недостающие сегменты кода, и дела идут хорошо, за исключением того, что я никогда не получаю кандидатов на ICE , Когда создается комната, вызывается следующая функция:
function registerPeerConnectionListeners(peerConnection) {
peerConnection.addEventListener('icegatheringstatechange', () => {
console.log(`ICE gathering state changed: ${peerConnection.iceGatheringState}`);
});
peerConnection.addEventListener('connectionstatechange', () => {
console.log(`Connection state change: ${peerConnection.connectionState}`);
});
peerConnection.addEventListener('signalingstatechange', () => {
console.log(`Signaling state change: ${peerConnection.signalingState}`);
});
peerConnection.addEventListener('iceconnectionstatechange ', () => {
console.log(`ICE connection state change: ${peerConnection.iceConnectionState}`);
});
}
Единственными событиями, которые запускаются и регистрируются на консоли при создании, а затем присоединении к комнате, являются:
Консоль вызывающего абонента:
Signaling state change: have-local-offer
Signaling state change: stable
Консоль Callee:
Signaling state change: have-remote-offer
Signaling state change: stable
Одноранговое соединение, настроенное с использованием:
const configuration = {
iceServers: [
{
urls: [
'stun:stun1.l.google.com:19302',
'stun:stun2.l.google.com:19302'
],
},
],
iceCandidatePoolSize: 10,
};
const peerConnection = new RTCPeerConnection(configuration);
Если соединение стабильно на обоих концах, где находятся кандидаты ICE?