Пытаюсь связать видео потоки между 2мя браузерами Chrome друг с другом при помощи WebRTC. Есть сигнальный сервер на localhost работающий на сокетах и успешно производящий обмен offer-answer. RTCPeerConnection на вызывающей и принимающей сторонах получают удаленные потоки но связать их с обьектом VIDEO html все равно не удается.
Вот код вызывающей стороны при вызове абонента :
function initiate_call(friend_id)
{
callerPeerConn = new RTCPeerConnection(peerConnCfg);
callerPeerConn.ontrack = function (event) {
remoteVideo.srcObject = event.streams[0];
}
video = document.querySelector("#me_video");
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(function (stream) {
video.srcObject = stream;
for (const track of stream.getTracks()) {
callerPeerConn.addTrack(track, stream);
}
return callerPeerConn.createOffer();
})
.then(
function (offer) {
var off = new RTCSessionDescription(offer);
callerPeerConn.setLocalDescription(
new RTCSessionDescription(off),
function () {
// signaling
console.log('send offer +');
},
function (err) {
console.log(err.message);
}
)
});
}
Вот код принимающей стороны :
function accept_send_answer(offer)
{
calleePeerConn = new RTCPeerConnection(peerConnCfg);
calleePeerConn.ontrack = function (event) {
remoteVideo.srcObject = event.streams[0];
}
video = document.querySelector("#me_video");
calleePeerConn.setRemoteDescription(offer)
.then(function () {
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(function (stream) {
video.srcObject = stream;
for (const track of stream.getTracks()) {
calleePeerConn.addTrack(track, stream);
}
return calleePeerConn.createAnswer();
})
.then(function (answer) {
// sending answer
console.log("answer was send");
})
.catch(function (err) {
console.log(err.message);
});
})
}
И наконец - функция вызывающей стороны при получении ответа :
function got_ansfer(answer)
{
callerPeerConn.setRemoteDescription(
new RTCSessionDescription(answer),
function () {
conso()le.log("caller got answer");
},
function (err) {
console.log(err.message);
}
)
}
В итоге не у вызывающего не у вызываемого не начинается видео, при том что getRemoteStreams() функция на обоих сторонах не null. В чем может быть дело ?