为什么简单的peer在nodeJS中不起作用?

时间:2017-03-14 22:03:16

标签: node.js

我试图在这个github上使用这个例子https://github.com/feross/simple-peer

var Peer = require('simple-peer')
var p = new Peer({ initiator: location.hash === '#1', trickle: false })

p.on('error', function (err) { console.log('error', err) })

p.on('signal', function (data) {
  console.log('SIGNAL', JSON.stringify(data))
  document.querySelector('#outgoing').textContent = JSON.stringify(data)
})

document.querySelector('form').addEventListener('submit', function (ev) {
  ev.preventDefault()
  p.signal(JSON.parse(document.querySelector('#incoming').value))
})

p.on('connect', function () {
  console.log('CONNECT')
  p.send('whatever' + Math.random())
})

p.on('data', function (data) {
  console.log('data: ' + data)
})

但是当我尝试执行此代码时,我有一个错误: ReferenceError:未定义位置:(

当我尝试删除括号中的所有参数时,只是为了测试:

var p = new Peer()

我还有一个错误: 错误:无WebRTC支持:在此环境中指定opts.wrtc选项

但是......如何修复这些错误才能使其正常工作?

3 个答案:

答案 0 :(得分:2)

现在通过在启动连接时指定wrtc: wrtc来支持它。来源:https://www.npmjs.com/package/simple-peer#in-node

var wrtc = require('wrtc');

var peer = new SimplePeer({ initiator: true, wrtc: wrtc })

答案 1 :(得分:0)

您正在nodejs(服务器上)上启动示例,并且服务器上没有window.location。 您需要从客户端(浏览器)启动此示例。 p2p不需要服务器(仅用于初始连接数据交换)

答案 2 :(得分:0)

  • 首先通过运行以下命令在您的应用程序中安装“wrtc”模块: npm insatll wrtc
  • 然后你需要导入它: var wrtc = require('wrtc');
  • 下一步是将 wrtc 参数传递给两个对等方: var peer1 = new Peer({ 发起者: true, wrtc: wrtc }) var peer2 = new Peer({ wrtc: wrtc })

运行此 .js 文件后,双方将建立它们之间的连接并可以开始通信,但在服务器上而不是在浏览器中。