我有完全相同的问题。添加 STUN TURN 服务器应该可以解决该问题。
客户端代码
peer = new Peer(this.api.currentUserValue().id+'-'+this.api.currentUserValue().first_name,{
host: 'localhost',
port: 8080,
path: '/api',
debug: 3,
config: { 'iceServers': [
{ 'url': 'stun:stun.l.google.com:19302' },
{ 'url': 'turn:numb.viagenie.ca',credential: 'xxxx', username:'[email protected]' } ] } // this is must for keeping the connection open
});
服务器端代码
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var expressPeerServer = require('peer').ExpressPeerServer;
var path = require('path');
app.set('port', (process.env.OPENSHIFT_NODEJS_PORT || "8080"));
app.set('host', (process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1"));
app.use(express.static(path.join(__dirname, '/client')));
app.use('/api', expressPeerServer(server, {debug:true}));
server.listen(app.get('port'),app.get('host'),function(){
console.log('Server running at %s:%s',app.get('host'),app.get('port'));
});