Node.js 我的快递+;socket.io在两个不同的端口启动
我的express 4应用程序始终从端口3000启动(此端口中忽略socketIO) 将我的express应用程序与socket.io绑定后,当我明确地侦听一个不同的端口时。 express+socket在我设置的端口上启动(例如:3030),我可以在两个端口上运行我的应用程序。端口3000不考虑socket.io,3030考虑它。 在当地我对此没有问题,但一旦我把我的项目推给heroku,我就会 EADDRINUSE地址已在使用中 这是我的配置Node.js 我的快递+;socket.io在两个不同的端口启动,node.js,heroku,express,socket.io,Node.js,Heroku,Express,Socket.io,我的express 4应用程序始终从端口3000启动(此端口中忽略socketIO) 将我的express应用程序与socket.io绑定后,当我明确地侦听一个不同的端口时。 express+socket在我设置的端口上启动(例如:3030),我可以在两个端口上运行我的应用程序。端口3000不考虑socket.io,3030考虑它。 在当地我对此没有问题,但一旦我把我的项目推给heroku,我就会 EADDRINUSE地址已在使用中 这是我的配置 { "name": "myapp",
{
"name": "myapp",
"private": true,
"version": "0.0.0",
"license": "MIT",
"scripts": {
"prestart": "npm install",
"start": "node ./bin/www"
},
"dependencies": {
"static-favicon": "~1.0.0",
"morgan": "~1.0.0",
"cookie-parser": "~1.0.1",
"body-parser": "~1.0.0",
"debug": "~0.7.4",
"jade": "*",
"ejs": "*",
"mongodb": "*",
"mongoskin": "*",
"monk": "*",
"passport" : "*",
"passport-facebook":"*",
"passport-local" : "~0.1.6",
"passport-facebook" : "~1.0.2",
"passport-twitter" : "~1.0.2",
"passport-google-oauth" : "~0.1.5",
"bcrypt-nodejs" : "latest" ,
"mongoose" : "~3.8.1",
"express": "~4.0.0",
"method-override": "~1.0.0",
"express-session" : "*",
"socket.io": ">= 0.9.6"
}
}
我的app.js
var http = require('http').Server(app);
var io = require('socket.io').listen(http);
http.listen(3030,
function(){
console.log("Express server listening on port " + app.get('port'));
});
module.exports = app;
www脚本
#!/usr/bin/env node
var debug = require('debug')('my-application');
var app = require('../app');
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
我通过设置“start”解决了这个问题:“node app”以避免在不同的端口启动,因此我完全理解了/bin中的WW脚本,然后我使用这个命令
heroku ps:scale web=1
来克服H14错误。您能添加代码吗?特别是使用端口号(30003030)的行。我不确定是否可以在Heroku中打开两个端口。bin/www包含什么?您在哪里定义应用程序?www脚本侦听端口3000,我认为这是错误的。