2016-01-20 86 views
2

我正在尝试使用PeerJS(一个webRTC库)进行游戏和triyng以使用它们提供的服务器来进行用户发现。我想管理一个连接的用户列表,我正在与PeerJS服务器苦苦挣扎。如何获取PeerJS服务器中的连接用户列表(带快递)?

在他们说的文档中,我们可以在同一个应用中使用PeerJs和Express服务器。

下面是代码:

# this doesn't work 
var express = require('express'); 
var app = express(); 
var ExpressPeerServer = require('peer').ExpressPeerServer; 

app.get('/', function(req, res, next) { res.send('Hello world!'); }); 

var server = app.listen(9000); 

var options = { 
    debug: true, 
    allow_discovery: true 
} 

app.use('/api', ExpressPeerServer(server, options)); 

server.on('connection', function(id) { 
    # we get a socket object as id :( 
    # should be a string 
    console.log(id) 
}); 

server.on('disconnect', function(id) { console.log(id + "deconnected") }); 

然而,当一个用户连接,我得到一个socket对象id,这不是我想要的。我也无法访问到所连接的同行在URL http://localhost:9000/peerjs/peers


什么奇怪的是,只用PeerJS服务器,它按预期工作(我得到了同行的串号),我可以访问URL http://localhost:9000/peerjs/peers上的连接对等点。

# this works 
var ip = require('ip'); 
var PeerServer = require('peer').PeerServer; 

var port = 9000; 
var server = new PeerServer({port: port, allow_discovery: true}); 

server.on('connection', function (id) { 
    # id is correct (a string) 
    console.log('new connection with id ' + id); 
}); 

server.on('disconnect', function (id) { 
    console.log('disconnect with id ' + id); 
}); 

console.log('peer server running on ' + 
      ip.address() + ':' + port); 

任何线索,以与快递PeerJS服务器的工作? 这是关于快速兼容性的回归吗?

感谢很多:)


系统的相关信息:

  • node -v : v0.10.25
  • 的Ubuntu 14.04
  • 从GitHub安装了
  • peerJS服务器:npm install peers/peerjs-server(版本: “0.2.8” )

回答

0

如果你运行你自己的peerjs服务器可以使用无证listAllPeers(function cb(list){})功能。

1
var app = express(); 
var server = app.listen(8000); 
var q = ExpressPeerServer(server, options); 
app.use('/peer', q); 
q.on('connection', function (id) { 
    console.log('user with ', id, 'connected'); 
}); 

这应该工作