在 'RTCDataChannel' 简单对等节点上执行 'send' 时出错
Error in executing 'send' on 'RTCDataChannel' simple-peer
我正在使用 simple-peer 库试用 webrtc。
我正在阅读 Opera 浏览器上链接 here 的教程。
我在发送一小串 'hello':
时遇到此错误
Uncaught DOMException: Failed to execute 'send' on 'RTCDataChannel': RTCDataChannel.readyState is not 'open' at Peer.send (http://127.0.0.1:9966/bundle.js:7011:19) at HTMLButtonElement.<anonymous> (http://127.0.0.1:9966/bundle.js:22:14) send @ index.js:241 (anonymous) @ index.js:21
这是我的 index.js:
var Peer = require('simple-peer')
if (Peer.WEBRTC_SUPPORT) {
console.log("Support");
peer = new Peer({
initiator: location.hash === '#1',
trickle:true
})
peer.on('signal', function (data) {
document.getElementById('yourId').value = JSON.stringify(data)
})
document.getElementById("connect").addEventListener('click', function () {
var otherId = JSON.parse(document.getElementById('otherId').value)
peer.signal(otherId)
})
peer.on('connect', function () {
console.log("CONNECTED");
})
document.getElementById("send").addEventListener('click', function () {
var message = document.getElementById("message_to_send").value
peer.write(message)
})
peer.on("data", function (data) {
console.log(data)
document.getElementById("messages").textContent += data + "\n"
})
} else {
console.log("No Support, Sorry");
}
改变
peer.send(data)
至
peer.write(data)
确实会给出任何错误,但也不会将数据发送到其他浏览器
我做错了什么?
提前致谢
我让它工作了。如果对任何人有用:
我使用的是 Opera 浏览器,它阻止了我的 IP 地址 "leaking"。切换到 Chrome 就像一个魅力
使用此 link 查看您的浏览器是否阻止了您的 IP 地址: https://diafygi.github.io/webrtc-ips/
我正在使用 simple-peer 库试用 webrtc。 我正在阅读 Opera 浏览器上链接 here 的教程。 我在发送一小串 'hello':
时遇到此错误Uncaught DOMException: Failed to execute 'send' on 'RTCDataChannel': RTCDataChannel.readyState is not 'open' at Peer.send (http://127.0.0.1:9966/bundle.js:7011:19) at HTMLButtonElement.<anonymous> (http://127.0.0.1:9966/bundle.js:22:14) send @ index.js:241 (anonymous) @ index.js:21
这是我的 index.js:
var Peer = require('simple-peer')
if (Peer.WEBRTC_SUPPORT) {
console.log("Support");
peer = new Peer({
initiator: location.hash === '#1',
trickle:true
})
peer.on('signal', function (data) {
document.getElementById('yourId').value = JSON.stringify(data)
})
document.getElementById("connect").addEventListener('click', function () {
var otherId = JSON.parse(document.getElementById('otherId').value)
peer.signal(otherId)
})
peer.on('connect', function () {
console.log("CONNECTED");
})
document.getElementById("send").addEventListener('click', function () {
var message = document.getElementById("message_to_send").value
peer.write(message)
})
peer.on("data", function (data) {
console.log(data)
document.getElementById("messages").textContent += data + "\n"
})
} else {
console.log("No Support, Sorry");
}
改变
peer.send(data)
至
peer.write(data)
确实会给出任何错误,但也不会将数据发送到其他浏览器
我做错了什么? 提前致谢
我让它工作了。如果对任何人有用: 我使用的是 Opera 浏览器,它阻止了我的 IP 地址 "leaking"。切换到 Chrome 就像一个魅力 使用此 link 查看您的浏览器是否阻止了您的 IP 地址: https://diafygi.github.io/webrtc-ips/