SamYan
SamYan

Reputation: 1571

Socket.io Error: listen EADDRINUSE

I have a small problem. I want to run a webserver and allow it to communicate with server using socket.io but i get:

enter image description here

POST UPDATE

Chat Class:

/**
 * 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;

Main:

// 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();

But if i try without chat class encapsulation, it works:

// 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);

So, what i'm doing bad ?

Thanks in advance.

Upvotes: 2

Views: 3879

Answers (1)

Jhonjhon_123
Jhonjhon_123

Reputation: 288

You have object instance problem. Delete var self = this;

Replace;

self.sock = io.listen(self.server);

To:

this.sock = io.listen(this.server);

Upvotes: 1

Related Questions