Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我的快递+;socket.io在两个不同的端口启动_Node.js_Heroku_Express_Socket.io - Fatal编程技术网

Node.js 我的快递+;socket.io在两个不同的端口启动

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

我的express 4应用程序始终从端口3000启动(此端口中忽略socketIO) 将我的express应用程序与socket.io绑定后,当我明确地侦听一个不同的端口时。 express+socket在我设置的端口上启动(例如:3030),我可以在两个端口上运行我的应用程序。端口3000不考虑socket.io,3030考虑它。 在当地我对此没有问题,但一旦我把我的项目推给heroku,我就会

EADDRINUSE地址已在使用中

这是我的配置

    {
  "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,我认为这是错误的。