1

这是我的 app.js 文件

/**
 * Module dependencies.
 */

var io = require('socket.io'),
    express = require('express'),
    path = require('path'),
    jquery = require('jquery'),
    routes = require('./routes');


/**
* Create app
*/

var app = express()
  , server = require('http').createServer(app)  
  , io = io.listen(server);

/**
* Configure app
*/ 
app.configure(function(){ 
    app.set('port', 2121);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    app.use(express.static(path.join(__dirname, 'public')));

});

// set both servers listening
server.listen( app.get('port') );


/**
* App gets
*/

app.get('/', routes.index );


console.log("listining on port " + app.get('port'));

io.set('log level', 1); // this gets rid of all the internal socket messages

io.sockets.on('connection', function(socket){
    console.log('made connection');


});

在呈现索引时加载的 index.js 文件中,我有

$(document).ready( function () {
    var socket = io.connect('http://localhost:2121');

});

我遇到的问题是这段代码将执行一次,终端显示

My-MacBook-Pro-3:board_demo home$ node app.js 
   info  - socket.io started
listining on port 2121
made connection

但是,如果我退出该过程^z并尝试再次运行代码,node app.js我会得到

My-MacBook-Pro-3:one_board_demo home$ node app.js 
   info  - socket.io started
listining on port 2121
   warn  - error raised: Error: listen EADDRINUSE

然后我切换端口并重复该过程。

这可能是什么原因造成的?我现在使用的大部分代码都是从我之前制作的一个项目中获取的,该项目没有这个问题。

谢谢您的帮助

4

0 回答 0