Я экспериментирую с 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