Как временно исключить сокет из участия в event loop?
Предположим, что есть объект\массив(*А) хранящий сокеты\коннекты\стримы\… для последующего\повторного использования.
Если писать сервеное приложения то все прекрастно.
Если же писать CLI утилиту, то пока event loop имеет объекты сама нода не завершит процесс.
Но хочется чтобы нода игнорировалла объекты из *А, чтобы не контролировать когда все асинхронные процессы в утилите завершились и убивать *А (или весть процесс (вообще недопустимо)).
Как временно исключить объекты хранящиеся в *А из event loop и включить их в event loop когда надо?
var socket = require('net').createConnection(23, function() {
setTimeout(10000, function() {
socket.unref(); // Исключили сокет из event loop
setTimeout(10000, function() {
// Нет нужды возвращать и закрывать сокет,
// так как он уже не в event loop
//socket.ref(); // Вернули сокет в event loop
//socket.end(); // Закрыли сокет
console.log('Last message!!!'); /* Когда сообщение будет выведено то нода завершит работу даже если socket все еще имеет соединение (!!!) так как он не участвует в event loop */
}
});
});