Node.js connectListener still called on socket error

I'm having a weird issue with a TCP client - I use socket.connect() to connect to the server instance. However, since the server is not running, I receive an error of ECONNREFUSED (so far so good).

I handle it using on('error') and set a timeout to try and reconnect in 10 seconds. This should continue to fail as long as the server is down. which is the case.

However, as soon as the server is running, it looks like all of the previous sockets are still active, so now I have several client sockets connected to the server.

I tried to call the destroy at the beginning of the on('error') handler function.

Any ideas how to deal with that?

Thanks!

EDIT: Code snippet:

var mySocket;
var self = this;
...

var onError = function (error) {
    mySocket.destroy(); // this does not change anything...

    console.log(error);

    // Wait 10 seconds and try to reconnect
    setTimeout(function () {
        console.log("reconnecting...");
        self.once('InitDone', function () {
            // do something
            console.log("init is done")
        });
        self.init();

    }, 10000);
}

Inside init function:

...
console.log("trying to connect");
mySocket = tls.connect(options, function () {
    console.log("connected!");
    self.emit('InitDone');
});
mySocket.setEncoding('utf8');
mySocket.on('error', onError);
...

The result of this is something like the following:

trying to connect ECONNREFUSED reconnecting... trying to connect ECONNREFUSED reconnecting... trying to connect ECONNREFUSED reconnecting... --> Starting the server here trying to connect connected init is done connected init is done connected init is done connected init is done

However I would expect only one connection since the previous sockets failed to connect. Hope this clarifies the question. Thanks!