设置peerJS服务器结合express

我正在尝试按照https://github.com/peers/peerjs-server#combining-with-existing-express-app上的readme设置我自己的peerJS服务器

我的代码在服务器上

port = process.env.PORT or 8080 http = require 'http' express = require 'express' app = express() server = http.createServer app app.use '/peerjs', ExpressPeerServer server, debug : on server.listen port server.listen 9000 

我的代码在客户端上

 peer = new Peer host : 'localhost' port : 9000 secure : no config : iceServers : [ url : 'stun:stun.l.google.com:19302' ] 

我在客户端控制台上得到这个错误

 GET http://localhost:9000/peerjs/peerjs/id?ts=14150106969530.4679094860330224 net::ERR_CONNECTION_REFUSED 

如果你仍然在寻找一个方法来build立你自己的对等服务器,那么这就是我所做的,使它为我工作。

server.js

 // initialize express var express = require('express'); var app = express(); // create express peer server var ExpressPeerServer = require('peer').ExpressPeerServer; var options = { debug: true } // create a http server instance to listen to request var server = require('http').createServer(app); // peerjs is the path that the peerjs server will be connected to. app.use('/peerjs', ExpressPeerServer(server, options)); // Now listen to your ip and port. server.listen(8878, "192.168.1.14"); 

客户端代码

我想,在这里你不应该有太多的问题,但是如果你想知道为某些参数放置什么,那么这里是对等对象的初始化:

 var peer = new Peer({ host: '192.168.1.14', port: 8878, path: '/peerjs', config: { 'iceServers': [ { url: 'stun:stun01.sipphone.com' }, { url: 'stun:stun.ekiga.net' }, { url: 'stun:stunserver.org' }, { url: 'stun:stun.softjoys.com' }, { url: 'stun:stun.voiparound.com' }, { url: 'stun:stun.voipbuster.com' }, { url: 'stun:stun.voipstunt.com' }, { url: 'stun:stun.voxgratia.org' }, { url: 'stun:stun.xten.com' }, { url: 'turn:192.158.29.39:3478?transport=udp', credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', username: '28224511:1379330808' }, { url: 'turn:192.158.29.39:3478?transport=tcp', credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', username: '28224511:1379330808' } ] }, debug: 3 }); 

这应该可以帮助你build立连接。

必须在客户端设置一条path到服务器,如下所示:

 var peer = new Peer('your_peer_id', {host: 'localhost', port: 9000, path: '/peerjs'}); 

(此path必须与ExpressPeerServer的路由path相同)