Mar*_*tin 3 javascript ssl node.js
在我看来,没有办法捕获与节点tls失败的连接.
tls.connect(port, host, options, function(){
// on connected
})
Run Code Online (Sandbox Code Playgroud)
由于代码是异步的,我不能将它包装成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
});
Run Code Online (Sandbox Code Playgroud)
这是短暂的:
var stream = tls.connect(port, host, options);
stream.once('secureConnect', function(){
// on connected
});
Run Code Online (Sandbox Code Playgroud)
因此,您需要添加另一个处理程序来侦听错误而不是成功连接:
var stream = tls.connect(port, host, options);
stream.once('secureConnect', function(){
// on connected
});
stream.on('error', function(err){
// on error
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1708 次 |
最近记录: |