1

私はCloud9IDEで開発しています。

これは私が受け取っているエラーです:

警告:エラーが発生しました:エラー:EACCESをリッスンします

Cloud 9がlistenのコードで使用するように指定したポートを使用しています:process.env.PORT

これが私のコードです:

//app.js Socket IO Test
var express = require("express"),
redis = require('socket.io/node_modules/redis'),
io = require('socket.io').listen(app);

var app = express();

var redisPort = [CENSORED]
  , hostname = [CENSORED]
  , password = [CENSORED]
  , db = 1;

var pub = redis.createClient(redisPort, hostname);
var sub = redis.createClient(redisPort, hostname);
var store = redis.createClient(redisPort, hostname);
pub.auth(password, function(){console.log("adentro! pub")});
sub.auth(password, function(){console.log("adentro! sub")});
store.auth(password, function(){console.log("adentro! store")});

io.configure( function(){
io.enable('browser client minification'); // send minified client
io.enable('browser client etag'); // apply etag caching logic based on version number
io.enable('browser client gzip'); // gzip the file
io.set('log level', 1); // reduce logging
io.set('transports', [ // enable all transports (optional if you want flashsocket)
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
var RedisStore = require('socket.io/lib/stores/redis');
io.set('store', new RedisStore({redisPub:pub, redisSub:sub, redisClient:store}));
});

app.listen(process.env.PORT);

app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});

var buffer = [];
io.sockets.on('connection', function(client){
var Room = "";
client.on("setNickAndRoom", function(nick, fn){
fn({msg : "Hello " + nick.nick});
client.join(nick.room);
Room = nick.room;
client.broadcast.to(Room).json.send({ msg: "Se conecto al room: " + nick.room, nick : nick });
});

client.on('message', function(message, fn){
var msg = message; //{ message: [client.sessionId, message] };
buffer.push(msg);
if (buffer.length > 15)
buffer.shift();
client.broadcast.to(Room).json.send(msg);
fn(msg);
});

client.on('disconnect', function(){
client.broadcast.to(Room).json.send({ msg: "Se desconecto"});
});
});

Cloud 9によって提案されたポートを使用しているときに、なぜこのエラーが発生するのかわかりません。

前もって感謝します!

4

1 に答える 1

3

ソケットにリッスンさせる前にapp=express()を作成しませんか?

于 2013-03-15T12:46:44.540 に答える