为了理解 TCP keepalive(我们将称之为 keepalive)的作用,您只需阅读名称:keep TCP alive。这意味着您将能够检查已连接的套接字(也称为 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