2016-01-20 26 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'); 
}); 

這應該工作

相關問題