Reputation: 1571
I have a small problem. I want to run a webserver and allow it to communicate with server using socket.io but i get:
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
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