node http.request with multiple responses

I need to connect to an appliance that requires an http POST subscription request; it replies with an http response containing XML data, and then uses the same socket to send additional data as events happen.

I've tried a few variations of using http.request to accomplish this, and I can get the initial response, but don't get any of the subsequent data (the server always sends some data as soon as the initial request is accepted).

My current iteration looks like this:

  subscribeData = {
            host: config.host,
            port: config.port,
            path: '/services',
            method: 'POST',
            auth: config.user + ':' + config.password,
            headers: { 'Connection': 'keep-alive'}
  };

  var sub = http.request(subscribeData, function(res) {
    logger.debug('STATUS  (subscribe request): ' + res.statusCode);
    logger.debug('HEADERS (subscribe request): ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', processSubscriptionData);
    res.on('end', function() {
            logger.debug("END");
    });
  });

  sub.on('socket', function(s) {
    console.log("We have a socket: ");
    s.on('data', function(d) { console.log('socket data'); processSubscriptionData(d);          });
  });
  sub.write(subscribeBody);
  sub.end();

The log indicates that the socket has been allocated, but never emits its 'data' event. processSubscriptionData is called once, with the initial response from the server via the res.on('data'...) call.

Since the http request is straightforward, I could ditch http.request and do the http request at that level, but http.request makes it much more transparent what's going on.

Is there a way to accomplish this with http.request, or an alternative approach before I code the request at the socket level?

Edit: I've discovered that I should remove the socket from the agent pool to prevent re-use:

http.get(options, function(res) {
  // Do stuff
}).on("socket", function (socket) {
 socket.emit("agentRemove");
});

This seems to solve the problem, as I'm now receiving updates as expected.