在nodejs中我自己的类中实现eventEmitter

时间:2014-01-08 06:35:40

标签: node.js sockets eventemitter

我正在编写一个套接字类,它应该在连接套接字时发出'socketConnected'事件。为此我已经这样做了。

Socket.prototype.connectEmitter = function(client){
    console.log("Connected");
    console.log(client);
    this.emit('socketConnected',client);
}


    Socket.prototype.connect = function(){
    var client = net.connect({port:this.remotePort, host:this.remoteIp},function(){     
        this.connectEmitter(client);
    });
    client.on('data',this.dataEmitter); 
    client.on('end',function(){
        console.log("Reading End");
    });
}

但是当我运行这段代码时,它说套接字对象没有connectEmitter方法。 我在哪里做错了。(我没有在这里发布整个代码。我从util继承了eventemitter)

1 个答案:

答案 0 :(得分:2)

不确定细节但是:

var client = net.connect({port:this.remotePort, host:this.remoteIp},function(){     
    this.connectEmitter(client);
});
在这种情况下,“这个”不是你所期望的那样。因为它在回调函数中使用。

尝试使用

var instance = this;
var client = net.connect({port:this.remotePort, host:this.remoteIp},function(){     
    instance.connectEmitter(client);
});

问候