2012-10-02 14 views
5

Estoy intentando ejecutar una aplicación nodejs con expreso y Socket.IO en heroku y que Comess a cabo con este errornodejs con socket.io en heroku

EACCESS, Permiso denegado

cuando intento ejecutar código siguiente:

app.configure(function() { 
    app.set('port', process.env.PORT || 3000); 
}); 
var server = http.createServer(app).listen(app.get('port')) 
io = require('socket.io').listen(server); // it crashes on this line 
io.configure(function() { 
    io.set("transports", ["xhr-polling"]); 
    io.set("polling duration", 10); 
    io.set("log level", 1); 
}); 

¿Es posible hacerlo en heroku?

dependencias:

"socket.io": "*", 
"express": "3.0.0rc4", 

Respuesta

2

Verificar este enlace: using socket.io with node.js on heroku.

[ACTUALIZA 1]

Marque esta answer, que creo que puede ayudar a solucionar su problema.

[ACTUALIZACIÓN 2]

Un link to a question que tiene código de trabajo (independientemente de error del cliente, la motivación de la pregunta en sí misma).

var port = process.env.PORT || 3000; 

var app = require('express').createServer() 
var io = require('socket.io').listen(app); 

app.listen(port); 

// Heroku setting for long polling 
io.configure(function() { 
    io.set("transports", ["xhr-polling"]); 
    io.set("polling duration", 10); 
}); 

// To set handlers for data received, etc ... use io.sockets.on('...', ...) 
+0

sí, pero esto se produce después de escuchar – Kikaimaru

+0

¿Ha intentado con diferentes números de puerto? – fableal

+0

pensé que solo podía usar process.env.PORT (ese es el puerto que heroku me asigna), sin eso solo obtendría un error diferente al usar un puerto aleatorio – Kikaimaru

0

qué hace cuando:

io = require('socket.io'); 
app.configure(function() { 
    app.set('port', process.env.PORT || 3000); 
}); 
var server = http.createServer(app).listen(app.get('port')) 
io.listen(server); // it crashes on this line 
io.configure(function() { 
    io.set("transports", ["xhr-polling"]); 
    io.set("polling duration", 10); 
    io.set("log level", 1); 
}); 

Me das cuenta de que no hay que hacer nada diferente, pero tengo curiosidad.

0

Probablemente usted acaba de empezar 2 servidores en el mismo puerto - su app (expresa servidor) y éste server = http.createServer(app).listen(app.get('port'))

tratar de escribir este

server = http.createServer(app).listen(/*port not from app*/)