Я реализовал узел imap (https://github.com/mscdex/node-imap). Прослушивание писем в открытом почтовом ящике. Работает нормально и без проблем. Однако при работе с очень нестабильным соединением inte rnet кажется, что соединение потеряно и появляется какая-то ошибка:
Error: This socket is closed
at Socket._writeGeneric (net.js:733:18)
at Socket._write (net.js:787:8)
at doWrite (_stream_writable.js:396:12)
at clearBuffer (_stream_writable.js:523:7)
at Socket.Writable.uncork (_stream_writable.js:312:7)
at JSStreamWrap.doWrite (internal/wrap_js_stream.js:119:17)
at JSStreamWrap.handle.onwrite (internal/wrap_js_stream.js:37:42)
at shutdownSocket (net.js:286:23)
at defaultTriggerAsyncIdScope (internal/async_hooks.js:281:19)
at TLSSocket.Socket._final (net.js:312:13)
at callFinal (_stream_writable.js:584:10)
at _combinedTickCallback (internal/process/next_tick.js:139:11)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
Насколько я знаю, у меня есть обработчики для всех соответствующих событий
imap.once('error', function(err) {
});
imap.once('close', function(err) {
});
imap.once('end', function(err) {
});
Однако ошибка не относится ни к одному из них. Кроме того, у меня есть все, что находится внутри try / catch, но ошибка приводит к сбою процесса узла, и мне приходится перезапускать его.
Любая идея, как go обойти это? В идеале перехватите ошибку и дайте ей возможность завершить / перезапустить соединение imap.