Node.js TLS错误:节点中的套接字挂起

Node.js TLS错误:节点中的套接字挂起,node.js,sockets,ubuntu,ssl,Node.js,Sockets,Ubuntu,Ssl,我正在尝试使用nodejs中的tls连接服务器。这是我的密码: var options = { rejectUnauthorized: false //self signed certificate }; co = require("tls").connect(5200, "my_host", options, function(){ co.on("data", function(data) { //do domething }) } 这是简化的代码。如果我捕捉到

我正在尝试使用nodejs中的tls连接服务器。这是我的密码:

var options = {
  rejectUnauthorized: false //self signed certificate
};
co = require("tls").connect(5200, "my_host", options, function(){
   co.on("data", function(data) {
      //do domething
   })

}
这是简化的代码。如果我捕捉到错误事件,我有一个
ECONNRESET
错误,如果我没有,我有以下跟踪:

Error: socket hang up
at SecurePair.error (tls.js:1001:23)
at EncryptedStream.CryptoStream._done (tls.js:697:22)
at EncryptedStream.read [as _read] (tls.js:493:12)
at EncryptedStream.Readable.read (_stream_readable.js:320:10)
at CleartextStream.onCryptoStreamFinish (tls.js:301:47)
at CleartextStream.g (events.js:175:14)
at CleartextStream.EventEmitter.emit (events.js:92:17)
at finishMaybe (_stream_writable.js:354:12)
at endWritable (_stream_writable.js:361:3)
at CleartextStream.Writable.end (_stream_writable.js:339:5)
如果我使用openssl s_客户端直接连接到我的服务器-连接我的主机:5200,效果非常好。奇怪的是,对于节点版本0.10.*,它可以在ubuntu 10.04上运行,但在我的mac电脑上不能,在ubuntu 12.04上也不能。我的服务器也是一个运行ubuntu 10.04的nodejs程序。不确定是否所有这些都是相关的,但任何帮助都将是巨大的!
干杯

根据您的客户机/服务器正在执行的操作,此处可能存在计时问题。您希望在回调外部设置事件处理程序,以确保在数据流动之前设置它们。试试这个:

var options = {
  rejectUnauthorized: false //self signed certificate
};
co = require("tls").connect(5200, "my_host", options, function(){
  //do something
});

co.on("data", function(data) {
  //do something
});