如何获得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){})
函数。