TLENS » 2015.10.14 15:51

Есть программа подключающаяся longPollServer vk и ждет события,
но если умышленно отключится от интернета то программа падает напрочь.
Не пойму как выхватить данный эксепшен не перехватывая его в process.on()

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
this.request = function (url, callback) {
var parseUrl = URL.parse(url);
var option = {
protocol: parseUrl.protocol,
hostname: parseUrl.hostname,
port:parseUrl.port,
path:parseUrl.pathname,
agent:false
};
var output = "";
var status;
var headers;
var req = (parseUrl.protocol == "https:" ? https: http).get(url, function(res) {
status = res.statusCode;
headers = res.headers;
res.setEncoding('utf8');
res.on('data', function(d) {
output += d;
})
.on('end', function () {
if (status == 200) {
callback(output);
}
else {
console.log({error: 'status', status: status});
self.request(url, callback);
}
});
})
.on('error', function(e) {
console.log({errConn: e});
setTimeout(function () {
self.request(url, callback);
}, 5000);
return true;
});
};

Если попытаться соединится при отключенном интернете то все норм срабатывает

Код:

1
2
3
4
5
6
7
8
req.on('error', function(e) {
console.log({errConn: e});
setTimeout(function () {
self.request(url, callback);
}, 5000);
return true;
});

но как быть когда соединение уже установилось но потом разорвалось?