rmo*_*njo 9 sockets ubuntu ssl node.js
我试图在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
})
}
Run Code Online (Sandbox Code Playgroud)
这是简化的代码.如果我发现错误事件,我有一个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)
Run Code Online (Sandbox Code Playgroud)
如果我使用openssl s_client -connect my_host:5200它直接连接到我的服务器,效果很好.奇怪的是,节点版本为0.10.*,它可以在ubuntu 10.04上运行,但在我的mac上也不适用于ubuntu 12.04.我的服务器也是运行ubuntu 10.04的nodejs程序.不确定所有这些是否相关,但任何帮助都会很棒!干杯
小智 -1
根据您的客户端/服务器正在执行的操作,这里可能存在计时问题。您希望在回调之外设置事件处理程序,以确保它们在数据流动之前进行设置。尝试这个:
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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |