Я пытаюсь настроить службу сигнализации webrt c, используя SignalHub и SimplePeer . Но при выполнении я получаю следующую ошибку: Uncaught (in promise) Error: InvalidStateError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: Called in wrong state: kStable
.
Вот код:
navigator.mediaDevices.getUserMedia({video: true, audio: false})
.then((stream) => {
const signalhub = require('signalhub')
const hub = signalhub('live-video', [
'http://localhost:8080'
])
const Peer = require('simple-peer')
const peer = new Peer({
initiator: location.hash == '#init',
trickle: false,
stream: stream
})
peer.on('signal', (data) => {
let yourID = JSON.stringify(data)
console.log('your ID: ', yourID)
hub.broadcast('update', yourID)
})
hub.subscribe('update').on('data', (data) => {
let otherID = JSON.parse(data)
console.log('other ID: ', otherID)
peer.signal(otherID)
})
// peer.on('stream', (stream) => {
// const video = document.createElement('video')
// document.body.appendChild(video)
// video.src = window.URL.createObjectURL(stream)
// video.play()
// })
})
.catch((err) => {
document.write(err)
})
Я следовал этим двум урокам P2P Video Chat с JavaScript / WebRT C & P2P Сигнализация для WebRT C с SignalHub от Кайла Робинсона Янга.