[英]Node js TLS uncaught error on connection fail? How to catch?
在我看来,没有办法捕获与节点tls失败的连接。
tls.connect(port, host, options, function(){
// on connected
})
由于代码是异步的,我不能将它包装成try catch。 我似乎没有发现一个表示ECONNREFUSED条件失败的事件。 http://nodejs.org/api/tls.html#tls_tls_connect_options_callback
相反,这个过程只是崩溃和退出。 虽然我能够用uncaughtException处理程序捕获它。 但我无法找到从该处理程序的错误中恢复的方法。 当程序到达时,甚至不知道哪个连接失败了。
那么我们如何捕获失败的连接?
tls.connect
方法返回一个您应该绑定error
处理程序的流对象。
为了更清楚:
tls.connect(port, host, options, function(){
// on connected
});
这是短暂的:
var stream = tls.connect(port, host, options);
stream.once('secureConnect', function(){
// on connected
});
因此,您需要添加另一个处理程序来侦听错误而不是成功连接:
var stream = tls.connect(port, host, options);
stream.once('secureConnect', function(){
// on connected
});
stream.on('error', function(err){
// on error
});
tls.connect()
创建与给定port
和host
的新客户端连接。 tls.connect()
返回一个tls.TLSSocket
对象。
您可以使用以下代码来处理错误。
var options = {
host: 'example.com',
port: 443
};
var socket = tls.connect(options, function() {
// Connected
});
socket.on('error', function(err) {
// on error
});
在此处查找更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.