我在不同的端口上启动两个不同的节点服务器,但我仍然收到以下错误。
info - socket.io started
info - FlashPolicyFileServer received an error event:
listen EADDRINUSE
这就是我启动第一台服务器的方式:
"use strict";
var
express = require('express'),
app = module.exports = express();
// set some config vars
var
server = require('http').createServer(app),
socket = require('./app/lib/socket');
// these settings are common to both environments
app.configure(function () {
// configuration left out
app.use(app.router);
});
// Load the routing
require('./app/routes')(app);
// run the server with socket.io
server.listen(3001);
socket.listen(server, session, app);
我以完全相同的方式启动第二台服务器,但第二行最后一行更改为:
server.listen(3002);
socket.io在另一个文件中以这样的方式启动
exports.listen = function (server, sessionStore, app) {
var io = require('socket.io').listen(server);
...
不确定如何解决此错误。
答案 0 :(得分:1)
Flash策略端口默认为10843,因此两个应用程序都会尝试从此端口运行它,这是您遇到的错误。删除传输,或使用
设置端口io.set('flash policy port', 3005)
或者您可以完全删除该传输:
io.set('transports', [
'websocket',
'xhr-polling',
'htmlfile',
'jsonp-polling'
]);