我正在使用peerJs(http://peerjs.com/docs/)创建一个在pc上运行并连接到服务器的小nodeJS脚本。 我通过在网络浏览器上打开来运行它并且它可以工作,但我需要使用nodeJS而不是使用浏览器。
我创造了这样的东西:
window = global;
window.BlobBuilder = require("BlobBuilder");
location = { protocol: 'http' };
BinaryPack = require("binary-pack");
XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var path = require("path");
var wrtc = require("wrtc");
var peerjs = require('peerjs');
RTCPeerConnection = wrtc.RTCPeerConnection;
RTCSessionDescription = wrtc.RTCSessionDescription;
RTCIceCandidate = wrtc.RTCIceCandidate;
WebSocket = require('ws');
var peer = new peerjs({
key: 'b0yke14mnsev1jor',
// Set highest debug level (log everything!).
debug: 3,
// Set a logging function:
logFunction: function() {
var copy = Array.prototype.slice.call(arguments).join(' ');
}
});
peer.on('connection', function(conn) {
conn.on('open', function() {
console.log("peer connected"); // This fires as expected
conn.send("helo");
});
});
peer.on('open', function(id) {
console.log('My peer ID is: ' + id);
});
peer.on('error', function(err) {
console.log(err);
});
当我使用node server.js运行它时,我收到此错误:
node server.js
{ Error: The current browser does not support WebRTC
at Peer.emitError (C:\nodeworkspace\playground\PeerJS\iperiusRemoteHost\node_modules\peerjs\lib\peer.js:372:15)
at Peer._abort (C:\nodeworkspace\playground\PeerJS\iperiusRemoteHost\node_modules\peerjs\lib\peer.js:365:10)
at Timeout._onTimeout (C:\nodeworkspace\playground\PeerJS\iperiusRemoteHost\node_modules\peerjs\lib\peer.js:349:14)
at ontimeout (timers.js:386:14)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5) type: 'browser-incompatible' }
谢谢!
答案 0 :(得分:0)
如果您想继续使用peerjs客户端库,则需要对其进行修改。
话虽如此,代码查询RTCPeerConnection以查看浏览器的功能,但这种方法不会存在于服务器中(即运行nodejs)。你可以停止,如果通过强制它给你这个错误信息,但当你尝试调用一些webrtc函数时,你会再次遇到问题。
查看此问题的答案:Making a node.js application a PEER with WebRTC
正如您将要读到的,这不是一件简单的事情。祝你好运!