should we persist sockets?

As I'm new to nodejs, and coming from PHP background, I might sound naive in this question, but

I was digging through the code of Ghost to get an idea of the design, where I stumbled upon an implementation which persists connections when connection happens.

GhostServer.prototype.connection = function (socket) {
    var self = this;

    self.connectionId += 1;
    socket._ghostId = self.connectionId;

    socket.on('close', function () {
        delete self.connections[this._ghostId];
    });

    self.connections[socket._ghostId] = socket;
};

Listened here

self.httpServer.on('connection', self.connection.bind(self));

My questions are

  1. Are there any real advantages of caching connections?
  2. when does that socket get closed? ( once the response flushed? )
  3. or Am I missing the main point of how does socket/connection work in nodejs?

Could anyone please clear my confusions?