我正在尝试将 PeerJS(一个 webRTC 库)用于游戏,并尝试使用他们提供的服务器来进行用户发现。我想管理已连接用户的列表,但我正在努力使用 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 服务器,它按预期工作(我得到了对等点的字符串 ID),并且我可以通过 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 服务器与 express 一起工作的任何线索?这是关于表达兼容性的回归吗?
非常感谢 :)
系统信息:
node -v : v0.10.25
- Ubuntu 14.04
- peerJS 服务器从 github 安装:(
npm install peers/peerjs-server
版本:“0.2.8”)