Node.js Socket.io错误:侦听EADDRINUSE
我有个小问题。我想运行Web服务器并允许它使用socket.io与服务器通信,但我得到: 更新后 聊天类:Node.js Socket.io错误:侦听EADDRINUSE,node.js,webserver,socket.io,Node.js,Webserver,Socket.io,我有个小问题。我想运行Web服务器并允许它使用socket.io与服务器通信,但我得到: 更新后 聊天类: /** * Chat Class */ // module dependencies var io = require('socket.io'); // self instance var self = this; /** * Constructor * * @param {server} * @param {userlist} */ var Chat = func
/**
* Chat Class
*/
// module dependencies
var io = require('socket.io');
// self instance
var self = this;
/**
* Constructor
*
* @param {server}
* @param {userlist}
*/
var Chat = function(server) {
this.server = server;
};
// Init
Chat.prototype.init = function() {
// socket instance
self.sock = io.listen(self.server);
};
module.exports = Chat;
// socket http server
var server = http.createServer(app).listen(app.get('port'), function(){
// chat server init
console.log('Listening on port ' + app.get('port'));
});
// chat
var chat = new Chat(server, userlist);
chat.init();
// socket http server
var server = http.createServer(app).listen(app.get('port'), function(){
// chat server init
console.log('Listening on port ' + app.get('port'));
});
var io = require('socket.io');
io.listen(self.server);
Main:
/**
* Chat Class
*/
// module dependencies
var io = require('socket.io');
// self instance
var self = this;
/**
* Constructor
*
* @param {server}
* @param {userlist}
*/
var Chat = function(server) {
this.server = server;
};
// Init
Chat.prototype.init = function() {
// socket instance
self.sock = io.listen(self.server);
};
module.exports = Chat;
// socket http server
var server = http.createServer(app).listen(app.get('port'), function(){
// chat server init
console.log('Listening on port ' + app.get('port'));
});
// chat
var chat = new Chat(server, userlist);
chat.init();
// socket http server
var server = http.createServer(app).listen(app.get('port'), function(){
// chat server init
console.log('Listening on port ' + app.get('port'));
});
var io = require('socket.io');
io.listen(self.server);
但是如果我尝试不使用聊天类封装,它会起作用:
/**
* Chat Class
*/
// module dependencies
var io = require('socket.io');
// self instance
var self = this;
/**
* Constructor
*
* @param {server}
* @param {userlist}
*/
var Chat = function(server) {
this.server = server;
};
// Init
Chat.prototype.init = function() {
// socket instance
self.sock = io.listen(self.server);
};
module.exports = Chat;
// socket http server
var server = http.createServer(app).listen(app.get('port'), function(){
// chat server init
console.log('Listening on port ' + app.get('port'));
});
// chat
var chat = new Chat(server, userlist);
chat.init();
// socket http server
var server = http.createServer(app).listen(app.get('port'), function(){
// chat server init
console.log('Listening on port ' + app.get('port'));
});
var io = require('socket.io');
io.listen(self.server);
那么,我做了什么坏事
提前感谢。您遇到了对象实例问题。删除
var self=this代码>
替换
self.sock = io.listen(self.server);
致:
这是一个副本,可能已经在tcp/3000上运行了。@Admdew,谢谢你的回复,但我已经在看那些帖子了,这不是我的情况。你是200%肯定吗?netstat
告诉了你什么?我是肯定的20000%,因为我尝试了其他端口,结果也是一样的。哈哈,好的,是的,这是非常肯定的。可能是吗?我想知道您的var server=http.createServer…
和var chat=newchat(服务器,用户列表)代码>线路试图在同一端口上创建两台服务器。如果您注释掉var chat…
和chat.init()
,错误是否会消失,您是否可以验证您选择的端口上是否已侦听某些内容?