在heroku上使用socket.io的Nodejs

时间:2012-10-02 17:37:21

标签: javascript node.js heroku socket.io

我正在尝试在heroku上运行带有express和socket.io的nodejs应用程序,并且它出现了这个错误

EACCESS,权限被拒绝

当我尝试运行以下代码时:

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);
});

甚至可以在heroku上执行此操作吗?

依赖关系:

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

3 个答案:

答案 0 :(得分:2)

点击此链接:using socket.io with node.js on heroku

[更新1 ]

选中此answer,我认为这可以帮助您解决问题。

[更新2 ]

具有工作代码的link to a question(无论客户的错误,问题本身的动机)。

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('...', ...)

答案 1 :(得分:0)

当你:

时它会做什么
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);
});

我意识到不应该做任何不同的事情,但我只是好奇。

答案 2 :(得分:0)

可能你只是在同一个端口上启动2台服务器 - 你的app(快速服务器)和这个server = http.createServer(app).listen(app.get('port'))

尝试写这个

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