Javascript heroku上带有socket.io的Nodejs
我试图在heroku上运行带有express和socket.io的nodejs应用程序,结果出现了这个错误 每次访问,权限被拒绝 当我尝试运行以下代码时:Javascript heroku上带有socket.io的Nodejs,javascript,node.js,heroku,socket.io,Javascript,Node.js,Heroku,Socket.io,我试图在heroku上运行带有express和socket.io的nodejs应用程序,结果出现了这个错误 每次访问,权限被拒绝 当我尝试运行以下代码时: app.configure(function () { app.set('port', process.env.PORT || 3000); }); var server = http.createServer(app).listen(app.get('port')) io = require('socket.io').listen(s
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",
检查此链接:
[更新1]
检查此项,我认为它可以帮助您解决问题
[更新2]
一个具有工作代码(不管客户机的bug、问题本身的动机)的数据库
当您:
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);
});
我意识到这不应该有什么不同,但我只是好奇。可能您只是在同一个端口上启动了两台服务器-您的
应用程序
(快速服务器)和这台服务器=http.createServer(应用程序)。侦听(app.get('port'))
试着写这个
server = http.createServer(app).listen(/*port not from app*/)
我想我只能使用process.env.PORT(那是heroku分配给我的端口),否则我会得到不同的错误,我只能使用一些随机端口。我不认为这个链接可以帮助我,因为所有这些都是在.listen()之后,最后一段代码使用express 2.x,而我使用的是3.x(不记得为什么,2.x出现了一些问题)但是是的,也许在某个地方有问题,但我仍然不知道是什么或者如何解决:)
server = http.createServer(app).listen(/*port not from app*/)