Typescript и WebRTC, createDataChannel не существует для типа «RTCPeerConnection» - PullRequest
0 голосов
/ 17 сентября 2018

Я экспериментирую с WebRTC и машинописью, потому что машинопись очень хороша, а webrtc еще лучше ... Я делаю это в контексте Angular 6, используя VS Code.

Это не похоже на спичку, заключенную на небесах (вероятно, из-за того, что я не понимаю какую-то неотъемлемую часть того или другого).

Мне было трудно найти какие-либо примеры людей, использующих машинопись для webrtc, но когда я начал пытаться перевести простой пример javascript, я заметил, что методы и свойства, по-видимому, по крайней мере распознаются в коде Visual Studio. Но я не ушел далеко.

Ниже вы можете увидеть, как я пытаюсь перевести простой пример на машинопись.

createConnection ()
{       
    // window.localConnection = localConnection = new RTCPeerConnection(servers);
    this.localConnection = new RTCPeerConnection();
    console.log(this.sendChannel);

    // sendChannel = localConnection.createDataChannel('sendDataChannel');
    var sendChannel = this.localConnection.createDataChannel('sendDataChannel');
    console.log(this.sendChannel);

    // localConnection.onicecandidate = e => {
    //   onIceCandidate(localConnection, e);
    // };
    // sendChannel.onopen = onSendChannelStateChange;
    // sendChannel.onclose = onSendChannelStateChange;

    // window.remoteConnection = remoteConnection = new RTCPeerConnection(servers);
    // console.log('Created remote peer connection object remoteConnection');

    // remoteConnection.onicecandidate = e => {
    //   onIceCandidate(remoteConnection, e);
    // };
    // remoteConnection.ondatachannel = receiveChannelCallback;

    // localConnection.createOffer().then(
    //   gotDescription1,
    //   onCreateSessionDescriptionError
    // );
    // startButton.disabled = true;
    // closeButton.disabled = false;
  }

При определении sendChannel я получаю эту ошибку:

src / app / app.component.ts (48,44): ошибка TS2339: свойство 'createDataChannel' не существует для типа 'RTCPeerConnection'.

Журнал консоли для первого журнала:

RTCPeerConnection {localDescription: null, currentLocalDescription: null, pendingLocalDescription: null, remoteDescription: null, currentRemoteDescription: null, pendingRemoteDescription: null, signalingState: "stable", canTrickleIceCandidates: iceState: iceState: iceState: null: iceState: null, iceState: null, iceState: null, iceState: null, iceState: null, iceState: null, iceState: null, iceState: null, iceState: null, iceState: null, iceState: New: * * * * * * * *. }

и ноль для второй записи.

Примите во внимание любые советы или подсказки, почему я получаю эту ошибку и как ее исправить.

Обновление : добавлен git repositoryng se, который воспроизводит проблему.

git clone https://github.com/wokawaka/typescriptwebrtctest
npm install
ng serve --open

1 Ответ

0 голосов
/ 18 сентября 2018

Похоже, что TypeScript 3.0.0 и более новые версии имеют объявление createDataChannel, но более старые версии - нет. Попробуйте обновить TypeScript. Существует также пакет @ types / webrtc , который может иметь более новые объявления, прежде чем они попадут в стандартную библиотеку TypeScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...