如何获得PeerJS服务器(与快递)的连接用户列表?

我正在尝试使用PeerJS(一个webRTC库)进行游戏和triyng,以使用它们提供的服务器来进行用户发现。 我想pipe理一个连接的用户列表,我正在与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上的连接对http://localhost:9000/peerjs/peers


奇怪的是,只使用PeerJS服务器,它按预期工作(我得到了对等体的stringID),我可以通过url http://localhost:9000/peerjs/peers访问连接的对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 (version:“0.2.8”)

 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'); }); 

这应该工作

只是在这里参考自己的答案: https : //github.com/peers/peerjs-server/issues/86

并结合使用SocketIO: http ://stephantabor.com/2015/07/11/express-peerjs-and-socket-io/

如果您运行自己的peerjs-server,则可以使用未listAllPeers(function cb(list){})函数。