Почему NodeJS KeepAlive не работает должным образом?

Цитируется изTCP keepalive HowTo:

Чтобы понять, что делает TCP keepalive (который мы будем просто называть keepalive), вам нужно всего лишь прочитать имя: оставьте TCP живым. Это означает, что вы сможете проверить подключенный сокет (также известный как TCP-сокеты) и определить, установлено ли соединение и работает ли оно илиесли он сломался.

Так почему же следующий кодне бросать что-то когда интернет-соединение нарушено?

var tls = require('tls');

var socket = tls.connect(443, "google.com", function connected() {
  console.log('connected');
});

socket.setNoDelay(true);
socket.setKeepAlive(true, 0);
socket.setTimeout(0, function(){
  console.log('timeout');
});
socket.on('data', function(data) {
  console.log(data);
});
socket.on('close', function() {
  console.error("close");
});
socket.on('error', function(err) {
  console.error("error", err);
});

Протестировано на MacOS / Debian, с NodeJS v0.10.17

Ответы на вопрос(2)

Ваш ответ на вопрос