5

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",
4

3 に答える 3

2

このリンクを確認してください: heroku の node.js で socket.io を使用します

[更新1 ]

この回答を確認してください。問題のトラブルシューティングに役立つと思います。

[更新2 ]

動作するコードを含む質問へのリンク(クライアントのバグ、質問自体の動機に関係なく)。

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('...', ...)
于 2012-10-02T17:39:32.807 に答える
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);
});

私はそれが違うことをするべきではないことを理解していますが、私はただ興味があります.

于 2012-10-02T18:59:54.073 に答える