WebRTC - RTCPeerConnection.localDescription возвращает нулевое значение в Firefox, но правильно работает в Chrome - PullRequest
0 голосов
/ 29 сентября 2018

Я создал простой потоковый сервис с использованием WebRTC.В настоящее время я все еще запускаю все через localhost.В настоящее время все работает при использовании браузера Chrome, но я не могу подключиться, когда я использую Firefox.Я использую прокладку WebRTC-Adapter.

Похоже, проблема связана с тем, что peerConnection.localDescription всегда равно null и не может отправить мое localDescription равноправному узлу или правильно установить remoteDescription.

Вот фрагмент моего кода.Это касается только получателя потока, который инициирует соединение p2p.Стример уже настроил локальный поток и устанавливает свое собственное локальное и удаленное описание, а затем localDescription отправляется получателю.sendRecipientDescription () просто обрабатывает отправку sdp стримеру через сокеты.PC_Config включает в себя только сервер STUN:

setUpRecipient = () => {
  this.createPeerConnection();
  this.pc
    .createOffer({ offerToReceiveVideo: true })
    .then(offer => {
      this.pc.setLocalDescription(offer);
    })
    .then(() => {
      this.sendRecipientDescription();
      console.log('recipient local description ', this.pc.localDescription);
    })
    .catch(e => {
      console.log('error recipient set up ', e);
    });
};

createPeerConnection = () => {
  try {
    this.pc = new RTCPeerConnection(PC_CONFIG);
    this.pc.onicecandidate = this.handleIceCandidate;
    this.pc.ontrack = this.handleRemoteStreamAdded;
    this.pc.onremovetrack = this.handleRemoteStreamRemoved;
    this.pc.oniceconnectionstatechange = this.handleIceStateChange;
    console.log('Created RTCPeerConnection', this.pc.localDescription);
  } catch (e) {
    console.log('Failed to create PeerConnection, exception: ', e.message);
  }
};

При использовании браузера Chrome this.pc.localDescription возвращается так, как ожидалось.При использовании браузера Firefox this.pc.localDescription всегда имеет значение null, RTCSessionDescription вообще отсутствует.Когда я console.log (this.pc) после setLocalDescription, создается впечатление, что localDescription действительно имеет значение null: RTCPeerConnection un-extended

Однако, когда я раскрываю объект RTCPeerConnection, вы видите, чтоПохоже, что localDescription настроено правильно: RTCPeerConnection расширен .Но когда я пытаюсь отправить this.pc.localDescription, он отправляет только ноль.

1 Ответ

0 голосов
/ 02 октября 2018

Я нашел ответ на свой вопрос.Видимо мне нужно было вернуть this.pc.setLocalDescription ();

Я не знаю, почему это необходимо.Насколько я знаю, pc.setLocalDescription ничего не возвращает, а имеет только побочный эффект установки pc.localDescription.Он отлично работал в Chrome, но не в Firefox.

...