我已经实现了节点 imap ( https://github.com/mscdex/node-imap )。在打开的收件箱中收听电子邮件。工作正常,没有任何问题。但是,在使用非常不稳定的互联网连接时,似乎连接丢失并且出现了一些错误:
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 中,但该错误仍然会使节点进程崩溃,我必须重新启动它。
知道如何解决这个问题吗?理想情况下捕获错误并给它一个机会来结束/重新启动 imap 连接。