#javascript #webrtc
Вопрос:
Я пытаюсь установить простое соединение, но сталкиваюсь с ошибкой, которая является названием этого поста.
Мой код для вызывающего абонента и ответчика приведен ниже:
ОШЕЛОМЛЯЮЩИЙ сервер
const servers = {iceServers: [{urls: ['stun:stun1.l.google.com:19302']}]}
Одноранговый узел A (Вызывающий абонент)
let peer = new RTCPeerConnection(servers)
let chnl = peer.createDataChannel("channel")
chnl.onopen = e => console.log("Connection opened")
chnl.onmessage = e => console.log("New message: " e.data)
peer.onicecandidate = e => console.log(JSON.stringify(e.candidate))
peer.createOffer().then(offer => peer.setLocalDescription(offer)).then(a => console.log(peer.localDescription))
Коллега В (Отвечающий)
let peer = new RTCPeerConnection(servers)
peer.ondatachannel= e => {
peer.chnl = e.channel
peer.chnl.onopen = e => console.log("Connection opened")
peer.chnl.onmessage = e => console.log("New message: " e.data)
}
peer.onicecandidate = e => console.log(JSON.stringify(e.candidate))
peer.setRemoteDescription(offer)
peer.createAnswer().then(answer=> peer.setLocalDescription(answer)).then(a => console.log(peer.localDescription))
Я запускал этот код на 2 отдельных вкладках консоли Firefox. Я бы скопировал предложение и ответ, зарегистрированные в журнале onicecandidate
обратного вызова, и установил их в качестве удаленных описаний ответчика и вызывающего абонента соответственно. В этот момент я бы получил сообщение об ошибке: WebRTC: ICE failed, add a TURN server and see about:webrtc for more details
. Я не уверен, как это решить.
Спасибо
Комментарии:
1. Поскольку в сообщении об ошибке вас просят добавить сервер ПОВОРОТА, вы можете выполнить поиск в Google по списку серверов ПОВОРОТА, а затем попытаться добавить его в
servers
переменную и протестировать.