peerjs nodejs нет браузера

Я использую peerJs ( http://peerjs.com/docs/), чтобы создать небольшой скрипт 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);

});

Когда я запускаю его с помощью узла server.js, я получаю эту ошибку:

узел 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' }

Спасибо!

1 ответ

Если вы хотите продолжить использовать клиентскую библиотеку peerjs для этого, вам нужно будет внести в нее изменения.

Сказав это, код запрашивает RTCPeerConnection, чтобы посмотреть на возможности браузера, но этот метод не будет существовать на сервере (т.е. запускать nodejs, как вы). Вы можете прекратить выдавать вам это сообщение об ошибке, форсируя его, но вы снова столкнетесь с проблемой, когда попытаетесь вызвать какую-то функцию webrtc.

Посмотрите ответы на этот вопрос: Как сделать приложение node.js PEER с помощью WebRTC

Как вы прочтете, это не простой вопрос. Удачи!

Другие вопросы по тегам